Monitoraggio percentuale uso della cache delle query del server MySQL

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

Knowledge Base article:

Riepilogo

Percentuale d'uso della cache delle query. La cache delle query archivia il contenuto di un'istruzione SELECT con il risultato corrispondente. Questi risultati vengono invalidati dopo un'istruzione INSERT, UPDATE o DELETE. Le dimensioni della cache delle query sono controllate con la variabile globale "query_cache_size". Le dimensioni di una query che può essere inserita nella cache delle query sono controllate dalla variabile globale "query_cache_limit". La soglia di monitoraggio viene analizzata confrontandola con una media dei valori restituiti all'agente in forma di polling, dove il parametro Numero di campioni si riferisce al numero di campioni inclusi nel calcolo della media.

Cause

Uno stato non integro indica che la percentuale d'uso della cache delle query MySQL è alta. La cache delle query potrebbe non avere spazio di archiviazione sufficiente per le query usate di recente. Il limite della cache delle query per le singole query potrebbe essere troppo alto comportando l'archiviazione di un numero di query minore e una percentuale d'uso maggiore.

Soluzioni

Per risolvere il problema dell'alta percentuale d'uso della cache delle query, aumentare il valore query_cache_size in modo da consentire l'archiviazione di ulteriori query. In alternativa, diminuire il valore query_cache_limit per consentire l'archiviazione di altre query nella cache.

Configurazione

Configurazione predefinita

Parametro

Valore predefinito

Soglia di avviso

Maggiore di 85

Soglia di errore

Maggiore di 95

Numero di campioni

3

Gli override possono essere usati per modificare i valori dei parametri definiti in precedenza per tutte le istanze oppure per istanze o gruppi specifici.

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.GreaterThanThreshold.ThreeState.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Percentuale uso della cache delle query del server MySQL
La percentuale d'uso corrente della cache delle query ({0}\%) per il server MySQL è alta
RunAsDefault

Source Code:

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