Raccolta di Applicazioni .NET/\% eventi prestazioni/sec

Microsoft.SystemCenter.Apm.ApplicationInstance.PerformanceRateMonitor (UnitMonitor)

Raccolta del contatore delle prestazioni Applicazioni .NET/\% eventi prestazioni/sec

Knowledge Base article:

Riepilogo

Lo stato dell'istanza diventa non integro se la frequenza degli eventi prestazioni per ogni periodo di tempo definito supera la soglia di monitoraggio.

Cause

Quando la frequenza di eventi prestazioni supera la soglia di monitoraggio configurata, vengono generati avvisi sulle prestazioni dell'applicazione.

Le chiamate al database eccessivamente lunghe potrebbero essere dovute a un problema del server di database o relativo alla struttura e alla complessità della query del database. I tempi eccessivamente lunghi delle attività di I/O dei file potrebbero essere causati da problemi del file server. I problemi di prestazioni dei servizi Web potrebbero verificarsi se il servizio Web o il server in cui questo risiede non è disponibile o se si è verificato un problema nel codice del servizio Web. I tempi eccessivamente lunghi per l'esecuzione interna delle applicazioni potrebbero essere causati da codice complesso o inefficiente.

Soluzioni

Un calo delle prestazioni tipico può essere causato da una chiamata al database eccessivamente lunga, una chiamata a un servizio Web eccessivamente lunga, una chiamata ai servizi remoti .NET lenta, una chiamata COM+ lenta o codice inefficiente dell'applicazione.

Element properties:

TargetMicrosoft.SystemCenter.Apm.ApplicationInstance
Parent MonitorSystem.Health.PerformanceState
CategoryCustom
EnabledFalse
Instance Name.NET Apps
Counter Name\% Performance Events/sec
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeSystem.Performance.ConsecutiveSamplesThreshold
RemotableFalse
AccessibilityPublic
Alert Message
Soglia superata per Applicazioni .NET/\% eventi prestazioni/sec
Il contatore delle prestazioni Applicazioni .NET/\% eventi prestazioni/sec ha superato la soglia configurata del {0}\%. Valore del contatore delle prestazioni: {1}\%.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.Apm.ApplicationInstance.PerformanceRateMonitor" Accessibility="Public" Enabled="false" Target="Microsoft.SystemCenter.Apm.ApplicationInstance" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="false" Priority="Normal" TypeID="Performance!System.Performance.ConsecutiveSamplesThreshold" ConfirmDelivery="false">
<Category>Custom</Category>
<AlertSettings AlertMessage="Microsoft.SystemCenter.Apm.ApplicationInstance.PerformanceRateMonitor.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="Microsoft.SystemCenter.Apm.ApplicationInstanceBase"]/PerformanceRateMonitorThreshold$</AlertParameter1>
<AlertParameter2>$Data/Context/SampleValue$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="ConditionFalse" HealthState="Success"/>
<OperationalState ID="Warning" MonitorTypeStateID="ConditionTrue" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>% Performance Events/sec</CounterName>
<ObjectName>.NET Apps</ObjectName>
<InstanceName>$Target/Property[Type="Microsoft.SystemCenter.Apm.ApplicationInstance"]/CounterInstance$</InstanceName>
<AllInstances>false</AllInstances>
<Frequency>$Target/Property[Type="Microsoft.SystemCenter.Apm.ApplicationInstanceBase"]/PerformanceRateMonitorInterval$</Frequency>
<Threshold>$Target/Property[Type="Microsoft.SystemCenter.Apm.ApplicationInstanceBase"]/PerformanceRateMonitorThreshold$</Threshold>
<Direction>greater</Direction>
<NumSamples>3</NumSamples>
</Configuration>
</UnitMonitor>