MySQL-Server – Abfragecachetreffer (\%) überwachen
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.
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.
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.
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.
Target | Microsoft.MySQLServer.ManagedServer.Unix | ||
Parent Monitor | Microsoft.MySQLServer.QueryCachePerformanceRollup | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | MatchMonitorHealth | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.Oss.WSManEnumeration.LessThanThreshold.ThreeState.MonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<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>