Monitor de Porcentagem de Contenção de Bloqueio da Tabela do Servidor MySQL

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

Knowledge Base article:

Resumo

O percentual do número de esperas para obter um bloqueio na tabela MyISAM com relação ao número de bloqueios solicitado. O MySQL usa bloqueio em nível de tabela para tabelas MyISAM, MEMORY e MERGE. O limite do monitor é analisado em relação a uma média de valores retornados em sondagens no agente, onde o parâmetro Número de Amostras controla o número de amostras incluídas no cálculo da média.

Causas

Um estado não íntegro indica que o percentual de contenções de bloqueios de tabela está alto. A quantidade de esperas necessárias antes de um bloqueio de tabela ser concedido está muito alta.

Resoluções

Para resolver uma alta porcentagem de contenções de bloqueios de tabela, experimente as opções possíveis:

Configuração

Configuração Padrão

Parâmetro

Valor padrão

Limite de Aviso

Maior que 45

Limite de Erro

Maior que 55

Número de Amostras

3

As substituições podem ser usadas para alterar os valores de parâmetros definidos acima para todas as instâncias ou para instâncias ou grupos específicos.

Element properties:

TargetMicrosoft.MySQLServer.ManagedServer.Unix
Parent MonitorMicrosoft.MySQLServer.TableCachePerformanceRollup
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Oss.WSManEnumeration.GreaterThanThreshold.ThreeState.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Porcentagem de Contenções de Bloqueios no Cache de Tabela do Servidor MySQL
A Porcentagem atual de Contenções de Bloqueios de Tabela ({0}\%) do Servidor MySQL está alta
RunAsDefault

Source Code:

<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>