MySQL-server, övervakning av tabellcacheträffar, i procent

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

Knowledge Base article:

Sammanfattning

Procentandel för antalet väntetillfällen för låsning av MyISAM-tabellen jämfört med antalet begärda låsningar. MySQL använder låsning på tabellnivå för MyISAM-, MEMORY- och MERGE-tabeller. Tröskelvärdet för övervakaren analyseras mot ett medeltal av de värden som returneras vid avsökningar till agenten, där parametern Antal prover styr antalet prov som tas med vid beräkning av medelvärdet.

Orsaker

Ett feltillstånd visar att procentandelen tabellcacheträffar är låg. Tabellcachen kanske inte har tillräckligt mycket lagringsutrymme för att hålla tabellerna öppna. Dessutom kan en överdriven mängd samtidiga anslutningar orsaka snabb försämring av tabellcachens lagringsutrymme.

Lösningar

Åtgärda en låg procentandel tabellträffar genom att öka table_cache_size så att fler tabeller kan lagras.

Konfiguration

Standardkonfiguration

Parameter

Standardvärde

Varningströskelvärde

Större än 80

Feltröskelvärde

Mindre än 70

Antal insamlingar

3

Åsidosättningar kan användas för att ändra parametervärden som har definierats ovan för alla instanser eller för specifika instanser eller grupper.

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.LessThanThreshold.ThreeState.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
MySQL-server, tabellcacheträffar i procent
Aktuellt procenttal för tabellcacheträffar ({0}\%) för MySQL-servern är lågt
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.MySQLServer.ManagedServer.Unix.TableCacheHitPct.Monitor" Accessibility="Public" Target="Microsoft.MySQLServer.ManagedServer.Unix" TypeID="Oss!Microsoft.Oss.WSManEnumeration.LessThanThreshold.ThreeState.MonitorType" Enabled="onStandardMonitoring" ParentMonitorID="Microsoft.MySQLServer.TableCachePerformanceRollup">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.MySQLServer.ManagedServer.Unix.TableCacheHitPct.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>Table 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(.)='TCacheHitPct']$</Value>
<WarningThreshold>80</WarningThreshold>
<ErrorThreshold>70</ErrorThreshold>
<NumSamples>3</NumSamples>
</Configuration>
</UnitMonitor>