MySQL Server - Schlüsselcache-Schreibvorgänge (\%) überwachen

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

MySQL-Server – Schlüsselcache-Schreibvorgänge (\%) überwachen

Knowledge Base article:

Zusammenfassung

Der Prozentsatz physischer Schreibvorgänge eines Schlüsselblocks auf den Datenträger im Vergleich zu Anforderungen zum Schreiben eines Schlüsselblocks in den Schlüsselcache. Der MyISAM-Schlüsselcache ist eine Datenstruktur, die die am häufigsten verwendeten Indexblöcke enthält. Die Größe des Schlüsselcache wird mit der globalen Variablen "key_buffer_size" gesteuert. Der Schwellenwert des Monitors wird anhand eines Durchschnitts der Werte analysiert, die nach dem Abrufen vom Agent zurückgegeben werden. Dabei wird die Anzahl der Abtastungen, die in die Berechnung des Durchschnitts einfließen, über den Parameter "Anzahl der Abtastungen" gesteuert.

Ursachen

Ein fehlerhafter Status weist auf einen niedrigen Prozentsatz an Schreibvorgängen in den Schlüsselcache im Vergleich zu den Schreibvorgängen auf den Datenträger hin. Der Schlüsselcache umfasst möglicherweise nicht genügend Speicherplatz, um alle Schlüsselblöcke zu speichern. Der Schlüsselcache wird mit einem "Selten verwendet"-Algorithmus aktualisiert.

Lösungen

Um auf einen niedrigen Prozentsatz für Schlüsselcachetreffer zu reagieren, erhöhen Sie den Wert der Variablen "key_buffer_size" in der Konfigurationsdatei. Fügen Sie dazu unter den Optionen der Instanzgruppe die folgende Zeile samt Größe hinzu: "key_buffer_size=Größe". Alternativ dazu kann der Server mit der folgenden Option gestartet werden: "--key_buffer_size=Größe".

Konfiguration

Standardkonfiguration

Parameter

Standardwert

Warnungsschwellenwert

Kleiner als 90

Fehlerschwellenwert

Kleiner als 80

Anzahl der Stichproben

3

Die oben für alle Instanzen oder für eine bestimmte Instanz oder Gruppe definierten Parameterwerte können mithilfe von Außerkraftsetzungen geändert werden.

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
MySQL-Server – Schlüsselcache-Schreibvorgänge (\%)
Der aktuelle Prozentsatz an Schlüsselcache-Schreibvorgängen ({0} \%) für den MySQL-Server ist niedrig
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>