Analyse du pourcentage de requêtes lentes du serveur MySQL

Microsoft.MySQLServer.ManagedServer.Unix.SlowQueryPct.Monitor (UnitMonitor)

Knowledge Base article:

Résumé

Pourcentage de requêtes lentes du serveur MySQL par rapport à l'ensemble des requêtes. Les requêtes lentes sont des requêtes exécutées sur des bases de données MySQL qui nécessitent plus de temps que le délai imparti par la variable globale « long_query_time ». Cette analyse récupère le nombre de requêtes lentes de la variable d'état globale « Slow_queries » et le divise par le nombre de requêtes de la variable d'état globale « Queries ». Pour MySQL 5.0 et 5.1, le nombre de requêtes est la somme des variables d'état globales suivantes : « Questions », « Com_ping », « Com_statistics », « Com_stmt_prepare », « Com_stmt_close » et « Com_stmt_reset ». Le seuil d'analyse est comparé à la moyenne des valeurs retournées sous forme de sondages à l'agent, où le paramètre Nombre d'échantillons contrôle le nombre d'échantillons inclus dans le calcul de la moyenne.

Causes

Un état non intègre indique que le pourcentage de requêtes supérieures à la variable globale « long_query_time » est élevé.

Résolutions

Pour résoudre les problèmes liés à des pourcentages de requêtes lentes élevés, déterminez les requêtes lentes en activant la journalisation des requêtes lentes dans le fichier de configuration. Pour cela, vous pouvez ajouter la ligne suivante avec le chemin d'accès au fichier journal de destination sous les options du groupe d'instances : « log-slow-queries= chemin d'accès au fichier journal ». Vous pouvez aussi démarrer le serveur avec l'option suivante : « --log-slow-queries=chemin d'accès au fichier journal ».

Configuration

Configuration par défaut

Paramètre

Valeur par défaut

Seuil d'avertissement

Supérieur à 15

Seuil d’erreur

Supérieur à 25

Nombre d’échantillons

3

Les remplacements permettent de modifier les valeurs de paramètre définies ci-dessus pour toutes les instances ou pour des instances ou groupes spécifiques.

Element properties:

TargetMicrosoft.MySQLServer.ManagedServer.Unix
Parent MonitorMicrosoft.MySQLServer.RowOperationsPerformanceRollup
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Oss.WSManEnumeration.GreaterThanThreshold.ThreeState.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Pourcentage de requêtes lentes du serveur MySQL
Le pourcentage de requêtes lentes actuel ({0} \%) pour le serveur MySQL est élevé
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.MySQLServer.ManagedServer.Unix.SlowQueryPct.Monitor" Accessibility="Public" Target="Microsoft.MySQLServer.ManagedServer.Unix" TypeID="Oss!Microsoft.Oss.WSManEnumeration.GreaterThanThreshold.ThreeState.MonitorType" Enabled="onStandardMonitoring" ParentMonitorID="Microsoft.MySQLServer.RowOperationsPerformanceRollup">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.MySQLServer.ManagedServer.Unix.SlowQueryPct.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Value$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState HealthState="Success" MonitorTypeStateID="StatusOK" ID="UnderThreshold"/>
<OperationalState HealthState="Warning" MonitorTypeStateID="StatusWarning" ID="OverWarningThreshold"/>
<OperationalState HealthState="Error" MonitorTypeStateID="StatusError" ID="OverErrorThreshold"/>
</OperationalStates>
<Configuration>
<Interval>300</Interval>
<TargetSystem>$Target/Host/Property[Type="Unix!Microsoft.Unix.Computer"]/NetworkName$</TargetSystem>
<Uri>http://schemas.microsoft.com/wbem/wscim/1/cim-schema/2/MySQL_ServerStatistics?__cimnamespace=root/mysql</Uri>
<WSManFilter/>
<ObjectName>MySQL Server</ObjectName>
<CounterName>Slow Query Pct</CounterName>
<InstanceXPath>/DataItem/WsManData/*[local-name(.)='MySQL_ServerStatistics']/*[local-name(.)='InstanceID']</InstanceXPath>
<InstanceName>$Target/Property[Type="Microsoft.MySQLServer.Installation"]/InstanceID$</InstanceName>
<Value>$Data/WsManData/*[local-name(.)='MySQL_ServerStatistics']/*[local-name(.)='SlowQueryPct']$</Value>
<WarningThreshold>15</WarningThreshold>
<ErrorThreshold>25</ErrorThreshold>
<NumSamples>3</NumSamples>
</Configuration>
</UnitMonitor>