MySQL Server - Abfragecachetreffer (\%) überwachen

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

MySQL-Server – Abfragecachetreffer (\%) überwachen

Knowledge Base article:

Zusammenfassung

Der Prozentsatz an Abfragen, die aus dem Abfragecache beantwortet werden. Der Abfragecache speichert den Inhalt einer select-Anweisung mit dem entsprechenden Ergebnis. Diese Ergebnisse werden nach einer insert-, update- oder delete-Anweisung ungültig gemacht. Die Größe des Abfragecache wird mit der globalen Variablen "query_cache_size" gesteuert. Die Größe einer Abfrage, die in den Abfragecache eingefügt werden kann, wird durch die global Variable "query_cache_limit" 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 darauf hin, dass nur ein niedriger Prozentsatz von Abfragen aus dem Abfragecache beantwortet wird. Möglicherweise hat der Abfragecache nicht genügend Speicherplatz für zuletzt verwendete Abfragen. Außerdem wird der Abfragecache durch häufige insert-, update- und delete-Anweisungen bereinigt.

Lösungen

Um einen niedrigen Prozentsatz an Abfragecachetreffern zu beheben, erhöhen Sie "query_cache_size", um das Speichern weiterer Abfragen zu ermöglichen. Durch das Erhöhen von "query_cache_limit" können größere Abfragen im Abfragecache gespeichert werden, wenn die meisten Abfragen über diesem Limit liegen. Beide Variablen können geändert werden, indem Sie den entsprechenden Variablennamen gefolgt von der Größe unter der Instanzengruppe in der Konfigurationsdatei hinzufügen.

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.QueryCachePerformanceRollup
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Oss.WSManEnumeration.LessThanThreshold.ThreeState.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
MySQL-Server – Abfragecachetreffer (\%)
Der aktuelle Prozentsatz an Abfragecachetreffern ({0} \%) für den MySQL-Server ist niedrig
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.MySQLServer.ManagedServer.Unix.QueryCacheHitPct.Monitor" Accessibility="Public" Target="Microsoft.MySQLServer.ManagedServer.Unix" TypeID="Oss!Microsoft.Oss.WSManEnumeration.LessThanThreshold.ThreeState.MonitorType" Enabled="onStandardMonitoring" ParentMonitorID="Microsoft.MySQLServer.QueryCachePerformanceRollup">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.MySQLServer.ManagedServer.Unix.QueryCacheHitPct.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>Query Cache Hit 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(.)='QCacheHitPct']$</Value>
<WarningThreshold>90</WarningThreshold>
<ErrorThreshold>80</ErrorThreshold>
<NumSamples>3</NumSamples>
</Configuration>
</UnitMonitor>