Монитор процента попаданий в кэш запросов MySQL Server

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

Knowledge Base article:

Сводка

Процент запросов, удовлетворяемых из кэша запросов. В кэше запросов хранится содержимое инструкции select с соответствующим результатом. Эти результаты становятся недействительными после применения инструкций insert, update или delete. Контроль размера кэша осуществляется с помощью глобальной переменной query_cache_size. Размер запроса, который можно вставить в кэш запроса, контролируется с помощью глобальной переменной query_cache_limit. Пороговое значение монитора анализируется путем усреднения значений, возвращаемых при опросе агента. При этом параметр "Число выборок" определяет число образцов, участвующих в вычислении среднего значения.

Причины

Неработоспособное состояние указывает на низкий процент запросов, удовлетворяемых из кэша запросов. Кэш запросов может не иметь достаточно места для недавно использовавшихся запросов. Кроме того, частые операции вставки, обновления и удаления будут очищать кэш запросов.

Решения

Чтобы решить проблему, связанную с низким процентом попаданий в кэш запросов, увеличьте значение query_cache_size для сохранения дополнительных запросов. Увеличение query_cache_limit позволяет сохранять в кэше запросов более крупные запросы, если большинство запросов превышает этот предел. Обе эти переменные можно изменить, добавив соответствующее имя переменной с числом в группу экземпляров в файле конфигурации.

Конфигурация

Конфигурация по умолчанию

Параметр

Значение по умолчанию

Порог "предупреждение"

Меньше 90

Порог "ошибка"

Меньше 80

Число выборок

3

Для изменения значений определенных выше параметров для всех экземпляров или отдельных экземпляров и групп могут использоваться переопределения.

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
Процент попаданий в кэш запросов MySQL Server
Текущий процент попаданий в кэш запросов ({0} \%) для MySQL Server низок
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>