MySQL Monitoring & Profiling

Hier will ich einiges festhalten zum Thema .

Meist lassen sich bei einem Datenbank Server Probleme nur durch ein gutes aufspüren. Daher liefert diverse Informationen zur aktuellen Auslastung und über seinen Zustand über diverse SQL Befehle aus.

Was läuft gerade?

Der wohl am meist benutzte SQL Befehl bei der Auswertung ist der um sich sie aktuell laufenden Prozesse anzeigen zu lassen.

Wie ist der aktuelle Status der Datenbank?

Werte zum aktuellen Status wie z.B. Verbindungen, geöffnete Tabellen etc. lassen sich auch direkt per SQL abrufen.

Hier einige oft benutzte Befehle für bestimmte Teilinformationen

Auswertung und Aufbereitung der Daten

Anhand der Werte die uns nun liefern kann, kann man noch diverse Rückschlüssen ziehen. Man kann z.B. die Werte über ein bestimmten Zeitraum mitschneidet und dann als Diagramme visualisieren. Dies bieten z.B. einige Tools an die am Ende des Artikels vorgestellt werden. Hier einfach mal eine Liste mit Dingen die man auswerten und/oder visualisieren könnte:

/Durchsatz

  • opened_tables/sec.
  • threads_created/sec.
  • avg queries/sec (t) für Select, Insert, Update, Replace, Delete, Call
  • read/sec. – select + qcache_read
  • writes/sec. – insert, update, delete, replace
  • Opened Tables (t)
  • New Connections (t)
  • Cache Hits vs. Inserts vs. Not Cached: avg cache ops/sec. (t)
  • Lowmem Prunes: avg cache ops/sec. (t)
  • Current-,Active-,Aborted Connections/min (t)
  • Inno DB Puffer, Query Cache, Key cache, Thread cache % (t)
  • Waited, Immediate: avg locks/sec. (t)
  • Memory Temp tables, Disk Temp Tables: total/min (t)

Auslastung

  • table_cache_size
  • open_tables
  • thread_cache_size
  • threads_cached
  • Zeigt an wie viel % der tmp Tabellen auf Festplatte erzeugt wurden. Es sollten so wenig wie möglich auf der Festplatte erzeugt werden. Der Wert sollte daher klein sein:
    created on HD [%] = (Created_tmp_disk_tables / (Created_tmp_tables +  Created_tmp_disk_tables)) * 100
  • Query Cache Hit Ration: qcache_hits*100 / (qcache_hits + com_select)
  • Connections: max_connections, max_used_connections, thread connections

Weblinks zum Thema

Software Tools die bei der Auswertung helfen

MySQL Monitor mit RRD

MySQL Benchmark – Skripte und  Code Snippets

Folgende Artikel könnten auch interessieren