Monitor percentage treffers in cache voor query's van MySQL-server

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

Knowledge Base article:

Samenvatting

Het percentage query's waaraan wordt voldaan vanuit de cache voor query's. In de cache voor query's wordt de inhoud van een geselecteerde instructie opgeslagen met het bijbehorende resultaat. Deze resultaten worden ongeldig na een instructie voor invoegen, bijwerken of verwijderen. De grootte van de cache voor query's wordt bepaald met behulp van de globale variabele query_cache_size. De grootte van een query die in de cache voor query's kan worden ingevoegd, wordt bepaalde door de globale variabele query_cache_limit. 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 query's waaraan wordt voldaan vanuit de cache voor query's. laag is. De cache voor query's heeft mogelijk onvoldoende opslagruimte voor recent gebruikte query's. Ook wordt de cache mogelijk frequent leeggemaakt wegens instructies voor invoegen, bijwerken of verwijderen.

Oplossingen

Als u een laag percentage treffers op de cache voor query's wilt verhelpen, verhoogt u de waarde voor query_cache_size zodat meer query's kunnen worden opgeslagen. U kunt de waarde voor query_cache_limit verhogen als veel query's groter zijn dan deze limiet. Hierdoor kunnen grotere query's worden opgeslagen in de cache voor query's. U kunt deze twee variabelen wijzigen door de naam van de betreffende variabele, gevolgd door de gewenste grootte, toe te voegen onder de exemplaargroep in het configuratiebestand.

Configuratie

Standaardconfiguratie

Parameter

Standaardwaarde

Waarschuwingsdrempel

Minder dan 90

Drempelwaarde voor fouten

Minder dan 80

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.QueryCachePerformanceRollup
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Oss.WSManEnumeration.LessThanThreshold.ThreeState.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Percentage treffers in cache voor query's van MySQL-server
Het huidige percentage ({0}\%) treffers op de cache voor query's voor de MySQL-server is laag
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>