Percentuale del numero di attese per ottenere un blocco sulla tabella MyISAM rispetto al numero di blocchi richiesti. MySQL usa il blocco a livello di tabella per le tabelle MyISAM, MEMORY e MERGE. 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.
Uno stato non integro indica che la percentuale di conflitti di blocco di tabella è alta. Il numero di attese necessario prima che venga concesso un blocco di tabella è troppo alto.
Per risolvere il problema dell'alta percentuale di conflitti di blocco di tabella, provare le opzioni possibili:
Usare InnoDB come motore di archiviazione principale delle tabelle, il quale usa solo il blocco a livello di riga
Inserire le righe in una tabella temporanea temp_table e quindi aggiornare periodicamente la tabella reale
Configurazione predefinita
Parametro | Valore predefinito |
Soglia di avviso | Maggiore di 45 |
Soglia di errore | Maggiore di 55 |
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.
Target | Microsoft.MySQLServer.ManagedServer.Unix | ||
Parent Monitor | Microsoft.MySQLServer.TableCachePerformanceRollup | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | MatchMonitorHealth | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.Oss.WSManEnumeration.GreaterThanThreshold.ThreeState.MonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.MySQLServer.ManagedServer.Unix.TableLockContentionPct.Monitor" Accessibility="Public" Target="Microsoft.MySQLServer.ManagedServer.Unix" TypeID="Oss!Microsoft.Oss.WSManEnumeration.GreaterThanThreshold.ThreeState.MonitorType" Enabled="onStandardMonitoring" ParentMonitorID="Microsoft.MySQLServer.TableCachePerformanceRollup">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.MySQLServer.ManagedServer.Unix.TableLockContentionPct.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>Table Lock Contention 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(.)='TableLockContentionPct']$</Value>
<WarningThreshold>45</WarningThreshold>
<ErrorThreshold>55</ErrorThreshold>
<NumSamples>3</NumSamples>
</Configuration>
</UnitMonitor>