MySQL Server - Pufferpooltnutzung (\%) überwachen

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

MySQL-Server – Pufferpoolnutzung (\%) überwachen

Knowledge Base article:

Zusammenfassung

Der Prozentsatz des Pufferpools, der zurzeit genutzt wird. Der InnoDB-Pufferpool enthält die am seltensten verwendeten Indexblöcke. Die Größe des Pufferpools wird mit der globalen Variablen "innodb_buffer_pool_size" gesteuert. Der Schwellenwert des Monitors wird anhand eines Durchschnitts der Werte analysiert, die nach dem Abrufen vom Agent zurückgegeben werden. Dabei wird die Anzahl der Abtastungen, die in die Berechnung des Durchschnitts einfließen, über den Parameter "Anzahl der Abtastungen" gesteuert.

Ursachen

Ein fehlerhafter Status weist darauf hin, dass ein hoher Prozentsatz des InnoDB-Pufferpools genutzt wird. Der Pufferpool umfasst möglicherweise nicht genügend Speicherplatz, um alle eingefügten Blöcke aufzunehmen.

Lösungen

Um einen hohen Prozentsatz der Pufferpoolnutzung zu beheben, erhöhen Sie die Pufferpoolgröße, indem Sie die Variable "innodb_buffer_pool_size" in der Konfigurationsdatei ändern.

Konfiguration

Standardkonfiguration

Parameter

Standardwert

Warnungsschwellenwert

Größer als 80

Fehlerschwellenwert

Größer als 95

Anzahl der Stichproben

3

Die oben für alle Instanzen oder für eine bestimmte Instanz oder Gruppe definierten Parameterwerte können mithilfe von Außerkraftsetzungen geändert werden.

Element properties:

TargetMicrosoft.MySQLServer.ManagedServer.Unix
Parent MonitorMicrosoft.MySQLServer.InnoDBPerformanceRollup
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Oss.WSManEnumeration.GreaterThanThreshold.ThreeState.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
MySQL-Server – InnoDB-Pufferpoolnutzung (\%)
Die aktuelle InnoDB-Pufferpoolnutzung in Prozent ({0} \%) für den MySQL-Server ist hoch
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.MySQLServer.ManagedServer.Unix.InnoDB_BufferPool_UsePct.Monitor" Accessibility="Public" Target="Microsoft.MySQLServer.ManagedServer.Unix" TypeID="Oss!Microsoft.Oss.WSManEnumeration.GreaterThanThreshold.ThreeState.MonitorType" Enabled="onStandardMonitoring" ParentMonitorID="Microsoft.MySQLServer.InnoDBPerformanceRollup">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.MySQLServer.ManagedServer.Unix.InnoDB_BufferPool_UsePct.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="UnderThreshold"/>
<OperationalState HealthState="Warning" MonitorTypeStateID="StatusWarning" ID="OverWarningThreshold"/>
<OperationalState HealthState="Error" MonitorTypeStateID="StatusError" ID="OverErrorThreshold"/>
</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>InnoDB Buffer Pool Use 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(.)='IDB_BP_UsePct']$</Value>
<WarningThreshold>80</WarningThreshold>
<ErrorThreshold>95</ErrorThreshold>
<NumSamples>3</NumSamples>
</Configuration>
</UnitMonitor>