Analyse du pourcentage d'écritures dans le cache de clés du serveur MySQL

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

Knowledge Base article:

Résumé

Pourcentage d'écritures physiques d'un bloc de clé dans le disque par rapport aux requêtes d'écriture d'un bloc de clé dans le cache de clés. Le cache de clés MyISAM est une structure de données qui contient les blocs d'index les plus utilisés. La taille du cache de clés est contrôlée par la variable globale « key_buffer_size ». 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 d'écritures dans le cache de clés par rapport aux écritures dans le disque est faible. Le cache de clés ne dispose peut-être pas de suffisamment d'espace pour stocker tous les blocs de clés. Le cache de clés est mis à jour selon un algorithme du « moins récemment utilisé ».

Résolutions

Pour résoudre les problèmes liés à des pourcentages d'accès au cache de clés faibles, augmentez key_buffer_size dans le fichier de configuration. Pour cela, vous pouvez ajouter la ligne suivante avec une taille sous les options du groupe d'instances : « key_buffer_size= taille ». Vous pouvez aussi démarrer le serveur avec l'option suivante : « --key_buffer_size=taille »

Configuration

Configuration par défaut

Paramètre

Valeur par défaut

Seuil d'avertissement

Inférieur à 90

Seuil d’erreur

Inférieur à 80

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.KeyCachePerformanceRollup
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Oss.WSManEnumeration.LessThanThreshold.ThreeState.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Pourcentage d'écritures dans le cache de clés du serveur MySQL
Le pourcentage d'écritures dans le cache de clés actuel ({0} \%) pour le serveur MySQL est faible
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.MySQLServer.ManagedServer.Unix.KeyCacheWritePct.Monitor" Accessibility="Public" Target="Microsoft.MySQLServer.ManagedServer.Unix" TypeID="Oss!Microsoft.Oss.WSManEnumeration.LessThanThreshold.ThreeState.MonitorType" Enabled="onStandardMonitoring" ParentMonitorID="Microsoft.MySQLServer.KeyCachePerformanceRollup">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.MySQLServer.ManagedServer.Unix.KeyCacheWritePct.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="OverThreshold"/>
<OperationalState HealthState="Warning" MonitorTypeStateID="StatusWarning" ID="UnderWarningThreshold"/>
<OperationalState HealthState="Error" MonitorTypeStateID="StatusError" ID="UnderErrorThreshold"/>
</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>Key Cache Write 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(.)='KeyCacheWritePct']$</Value>
<WarningThreshold>90</WarningThreshold>
<ErrorThreshold>80</ErrorThreshold>
<NumSamples>3</NumSamples>
</Configuration>
</UnitMonitor>