Monitor percentage treffers cache voor sleutels van MySQL-server

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

Monitor percentage treffers in cache voor sleutels van MySQL-server

Knowledge Base article:

Samenvatting

Het percentage treffers dat MySQL-server kan leveren vanuit de cache voor sleutels en niet vanaf schijf. De MyISAM-cache voor sleutels is een gegevensstructuur die de meest gebruikte indexblokken bevat. De grootte van de cache voor sleutels wordt bepaald met behulp van de globale variabele key_buffer_size. De monitordrempelwaarde wordt geanalyseerd tegen het gemiddelde van de waarden die in peilingen aan de agent worden geretourneerd. De parameter Aantal steekproeven bepaalt het aantal steekproeven dat bij de berekening van het gemiddelde is opgenomen.

Oorzaken

Een slechte status geeft aan dat het percentage leesbewerkingen vanuit de cache voor sleutels ten opzichte van het totale aantal aanvragen voor de cache voor sleutels laag is. Mogelijk is er voor de cache voor sleutels onvoldoende ruimte beschikbaar om alle sleutelblokken te bevatten. De cache voor sleutels wordt bijgewerkt met een algoritme voor de minst recente actie.

Oplossingen

Als u problemen met een laag percentage treffers in de cache voor sleutels wilt oplossen, verhoogt u de waarde voor key_buffer_size in het configuratiebestand. Dit kan worden gedaan door het toevoegen van de volgende regel onder de instantiegroepsopties: key_buffer_size= size. De server kan ook worden gestart met de volgende optie: --key_buffer_size=size

Configuratie

Standaardconfiguratie

Parameter

Standaardwaarde

Waarschuwingsdrempel

Minder dan 95

Drempelwaarde voor fouten

Minder dan 90

Aantal steekproeven

3

Met onderdrukkingen kunnen de hierboven gedefinieerde parameterwaarden worden gewijzigd voor alle exemplaren of voor specifieke exemplaren of groepen.

Element properties:

TargetMicrosoft.MySQLServer.ManagedServer.Unix
Parent MonitorMicrosoft.MySQLServer.KeyCachePerformanceRollup
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Oss.WSManEnumeration.LessThanThreshold.ThreeState.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Percentage treffers cache voor sleutels van MySQL-server
Het huidige percentage ({0}\%) treffers op de cache voor sleutels voor de MySQL-server is laag
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.MySQLServer.ManagedServer.Unix.KeyCacheHitPct.Monitor" Accessibility="Public" Target="Microsoft.MySQLServer.ManagedServer.Unix" TypeID="Oss!Microsoft.Oss.WSManEnumeration.LessThanThreshold.ThreeState.MonitorType" Enabled="onStandardMonitoring" ParentMonitorID="Microsoft.MySQLServer.KeyCachePerformanceRollup">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.MySQLServer.ManagedServer.Unix.KeyCacheHitPct.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>Key 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(.)='KeyCacheHitPct']$</Value>
<WarningThreshold>95</WarningThreshold>
<ErrorThreshold>90</ErrorThreshold>
<NumSamples>3</NumSamples>
</Configuration>
</UnitMonitor>