Monitor del porcentaje de aciertos de caché de consulta de MySQL Server

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

Monitor del porcentaje de aciertos de caché de consulta del servidor MySQL

Knowledge Base article:

Resumen

El porcentaje de consultas satisfechas en la caché de consulta. La caché de consulta almacena el contenido de una instrucción Select con el resultado correspondiente. Estos resultados se invalidan tras una instrucción Insert, Update o Delete. El tamaño de la caché de consulta se controla usando la variable global "query_cache_size". El tamaño de una consulta que se puede insertar en la caché de consulta se controla con la variable global "query_cache_limit". El umbral de monitor se analiza con el promedio de valores devueltos por sondeos realizados al agente, donde el parámetro de número de muestras controla el número de muestras incluidas en el cálculo del promedio.

Causas

Un estado incorrecto indica que el porcentaje de consultas satisfechas en la caché de consulta es bajo. Es posible que la caché de consulta no tenga suficiente almacenamiento para las consultas usadas recientemente. Además, las instrucciones frecuentes Insert, Update o Delete purgarán la caché de consulta.

Soluciones

Para hacer frente a un porcentaje bajo de aciertos de caché de consulta, aumente query_cache_size para permitir el almacenamiento de consultas adicionales. El incremento de query_cache_limit permitirá el almacenamiento de consultas de mayor volumen de en la caché de consultas si la mayor parte de estas tienen un tamaño superior a ese límite. Estas dos variables pueden modificarse mediante la adición del nombre de la variable correspondiente seguido del tamaño bajo el grupo de instancias en el archivo de configuración.

Configuración

Configuración predeterminada

Parámetro

Valor predeterminado

Umbral de advertencia

Menos de 90

Umbral de error

Menos de 80

Número de muestras

3

Se pueden usar invalidaciones para cambiar los valores de parámetros definidos anteriormente para todas las instancias o para instancias o grupos específicos.

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
Porcentaje de aciertos de la caché de consulta del servidor MySQL
El porcentaje actual ({0} \%) de aciertos de la caché de consulta para el servidor MySQL es bajo
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>