Monitor de Porcentagem de Ocorrências no Cache de Consulta do Servidor MySQL

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

Knowledge Base article:

Resumo

A porcentagem de consultas atendidas do cache de consulta. O cache de consulta armazena o conteúdo de uma instrução selecionada com o resultado correspondente; estes resultados são invalidados depois de uma instrução de inserção, de atualização ou de exclusão. O tamanho do cache de consulta é controlado usando a variável global “query_cache_size”. O tamanho de uma consulta que pode ser inserido no cache de consulta é controlado pela variável global “query_cache_limit”. O limite do monitor é analisado em relação a uma média de valores retornados em sondagens no agente, onde o parâmetro Número de Amostras controla o número de amostras incluídas no cálculo da média.

Causas

Um estado não íntegro indica que o percentual de consultas atendidas do cache de consulta está baixo. O cache de consulta pode não ter armazenamento suficiente para consultas usadas recentemente. Além disso, instruções frequentes de inserção, de atualização e de exclusão limparão o cache de consulta.

Resoluções

Para resolver uma porcentagem baixa de ocorrências no cache de consulta, aumente o query_cache_size para permitir o armazenamento de consultas adicionais. Aumentar o query_cache_limit permitirá o armazenamento de consultas maiores no cache de consulta se a maioria das consultas estiver acima do limite. Ambas as variáveis podem ser modificadas adicionando o nome da respectiva variável seguido pelo tamanho no grupo de instâncias no arquivo de configuração.

Configuração

Configuração Padrão

Parâmetro

Valor padrão

Limite de Aviso

Menos de 90

Limite de Erro

Menos de 80

Número de Amostras

3

As substituições podem ser usadas para alterar os valores de parâmetros definidos acima para todas as instâncias ou para instâncias ou 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
Porcentagem de Ocorrências no Cache de Consulta do Servidor MySQL
A Porcentagem atual de Ocorrências no Cache de Consulta ({0}\%) do 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>