Monitoraggio percentuale uso del pool di buffer del server MySQL

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

Knowledge Base article:

Riepilogo

Percentuale del pool di buffer attualmente usata. Il pool di buffer InnoDB contiene i blocchi di indice usati meno di recente. Le dimensioni del pool di buffer sono controllate con la variabile globale 'innodb_buffer_pool_size'. La soglia di monitoraggio viene analizzata confrontandola con una media dei valori restituiti all'agente in forma di polling, dove il parametro Numero di campioni si riferisce al numero di campioni inclusi nel calcolo della media.

Cause

Uno stato non integro indica che la percentuale d'uso del pool di buffer InnoDB è alta. Il pool di buffer potrebbe non avere spazio sufficiente per contenere tutti i blocchi inseriti.

Soluzioni

Per risolvere il problema dell'alta percentuale d'uso del pool di buffer, aumentare le dimensioni del pool di buffer modificando la variabile 'innodb_buffer_pool_size' nel file di configurazione.

Configurazione

Configurazione predefinita

Parametro

Valore predefinito

Soglia di avviso

Maggiore di 80

Soglia di errore

Maggiore di 95

Numero di campioni

3

Gli override possono essere usati per modificare i valori dei parametri definiti in precedenza per tutte le istanze oppure per istanze o gruppi specifici.

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
Percentuale uso del pool di buffer InnoDB del server MySQL
La percentuale d'uso corrente del pool di buffer InnoDB ({0}\%) per il server MySQL è alta
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>