Monitor da Percentagem de Acertos na Cache da Consulta do Servidor MySQL

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

Knowledge Base article:

Resumo

A percentagem de consultas satisfeitas pela cache da consulta. A cache da consulta armazena os conteúdos de uma declaração específica com os resultados correspondentes; esses resultados são invalidados após uma declaração de inserção, atualização ou eliminação. O tamanho da cache da consulta é controlado com a variável global "query_cache_size". O tamanho de uma consulta que pode ser inserida na cache da consulta é controlado pela variável global "query_cache_limit". O limiar do monitor é comparado com a média dos valores devolvidos nas consultas ao agente e o número de amostras incluídas no cálculo da média é controlado pelo parâmetro Número de Amostras.

Causas

Um estado de funcionamento incorreto indica que a percentagem de consultas satisfeitas da cache da consulta é baixa. A cache da consulta poderá não ter armazenamento suficiente para as consultas recentemente utilizadas. Além disso, as declarações frequentes de inserção, atualização e de eliminação removem a cache da consulta.

Resoluções

Para resolver uma percentagem baixa de acertos na cache da consulta, aumente query_cache_size para permitir que sejam armazenadas mais consultas. Aumentar query_cache_limit permite que sejam armazenadas consultas maiores na cache da consulta, se a maior parte das consultas estiver acima desse limite. Ambas as variáveis podem ser modificadas ao acrescentar o nome da respetiva variável, seguido do tamanho, por baixo do grupo de instâncias no ficheiro de configuração.

Configuração

Configuração Predefinida

Parâmetro

Valor Predefinido

Limiar de Aviso

Menor que 90

Limiar de Erros

Menor que 80

Número de Amostras

3

As substituições podem ser utilizadas para alterar os valores dos parâmetros acima definidos para todas as instâncias ou para instâncias específicas ou grupos.

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
Percentagem de Acertos na Cache da Consulta do Servidor MySQL
A Percentagem de Acertos na Cache da Consulta atual ({0}\%) para o Servidor MySQL está baixa
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>