MySQL Server mit mytop überwachen

mytopVielen Linuxanwendern sind Befehle wie top oder htop ein gängiger Begriff. Auch für den Datenbankserver MySQL gibt ein top-ähnliches Überwachungstool – mytop. Dieses kleine Programm bietet dem Admin einen schnellen Überblick der derzeitigen Serverauslastung und Nutzung.

mytop findet sich in den Ubuntu Paketquellen und lässt sich wie folgt installieren.

$ sudo apt-get install mytop

Nach der Installation könnte ein Beispielaufruf so aussehen:

mytop -u BENUTZER -p PASSWORT -h HOST-d DATENBANK

Alternativ zu diesem Aufruf kann man sich auch die Parameter sparen und diese in der Konfigurationsdatei ~/.mytop ablegen.

user=BENUTZER
pass=PASSWORT
host=HOST
db=DATENBANK
delay=5
port=3306
batchmode=0
header=1
color=1
idle=1

Achtung! Das Speichern von Passwörtern im Klartext kann gefährlich sein! Man sollte sicher gehen das kein Dritter Zugriff auf die Datei ~/.mytop erlangen kann! Verwendung also auf eigene Gefahr!

Datenbankgröße mit SQL ermitteln

Jeder der eine oder mehrere Datenbanken betreibt, sollte neben der Performance auch die belegten und benötigten Ressourcen im Blick haben. Mit einer einfachen Abfrage kann man sich direkt vom MySQL Server die Speicherbelegung anzeigen lassen.

SELECT 
  table_schema AS 'Datenbankname',
  Round( SUM( data_length ) / 1024 / 1024, 3 ) AS 'Daten (MB)',
  Round( SUM( index_length ) / 1024 / 1024, 3 ) AS 'Index (MB)',
  Round( Sum( data_length + index_length ) / 1024 / 1024, 3 ) AS 'Gesamt (MB)',
  Round( Sum( data_free ) / 1024 / 1024, 3 ) AS 'Freier Speicher (MB)'
FROM information_schema.tables
GROUP BY table_schema ; 

Das Resultat sieht dann in etwa so aus …

+--------------------+------------+------------+-------------+----------------------+
| Datenbankname      | Daten (MB) | Index (MB) | Gesamt (MB) | Freier Speicher (MB) |
+--------------------+------------+------------+-------------+----------------------+
| shopdb             |   2457.729 |   1218.272 |    3676.002 |                4.000 |
| testdb             |      0.460 |      0.324 |       0.784 |                0.000 |
| information_schema |      0.000 |      0.008 |       0.008 |                0.000 |
| logging            |   1239.394 |    702.597 |    1941.991 |                0.000 |
| mysql              |      0.492 |      0.087 |       0.579 |                0.000 |
+--------------------+------------+------------+-------------+----------------------+
5 rows in set (0.00 sec)

(Die Abfrage stammt von http://www.artfulsoftware.com/infotree/queries.php und wurde von mir leicht angepasst.)

MySQL Performance Optimierung mit MySQLTuner

MySQLTuner - nicht optimierte DatenbankBei meiner Suche nach Möglichkeiten MySQL Datenbanken zu optimieren, bin ich auf MySQLTuner gestoßen. Dieses in Perl geschriebene Script, wertet nach Angabe der Zugangsdaten schnell und übersichtlich die Datenbankkonfiguration nach Performancegesichtspunkten aus und bietet Vorschläge zur Optimierung.

Die Verwendung ist denkbar einfach. Aktuelle Version herunterladen. Ausführen. Vorschläge ansehen und ggf. entsprechend optimieren.

wget http://github.com/rackerhacker/MySQLTuner-perl/raw/master/mysqltuner.pl
perl mysqltuner.pl

Alternativ kann man sich auch den perl Befehl sparen, in dem man das Skript ausführbar macht.

chmod u+x mysqltuner.pl
./mysqltuner.pl

Heraus kommt dann eine Auswertung die in General Statistics, Storage Engine Statistics, Security Recommendations, Performance Metrics, Recommendations unterteilt ist. Ob alle Optimierungsvorschläge auch Zielführend sind, kann ich an dieser stelle noch nicht abschließend bewerten. Eine Erleichterung zur Optimierung ist es aber alle mal.

Links zum Projekt:
http://blog.mysqltuner.com/
http://github.com/rackerhacker/MySQLTuner-perl
http://groups.google.com/group/mysqltuner-talk

Systemauslastung mit htop überwachen

Auf fast jedem Linux System findet sich der Systemmonitor top mit dem man einfach einen Überblick der Laufenden Prozesse erhällt. Eine sehr komfortable Alternative hierzu bietet htop, die ausserdem die Auslastung der einzelnen Prozessoren (sofern vorhanden, Screenshots sind von einem alten Test-Laptop), Speicher und Swap als Bargraph anzeigt.

Das Programm wird (auf Debian Systemen) wie folgt installiert:

sudo apt-get install htop

Nach der Installation wird das Programm mit dem gleichnamigen Befehl htop auf der Konsole aufgerufen. Mit der Taste F5 werden zusammengehörige Prozesse in einer Baumstruktur angezeigt. Ein Prozess kann direkt mit der Taste F9 beendet werden nachdem der Prozess mittels Cursortasten ausgewählt wurde. Des weiteren ist es möglich die Sortierung nach verschiedenen Kriterien z.B. PID, USER, CPU%, MEM%, … mit der Taste F6 zu ändern.

Weitere Informationen gibts unter http://htop.sourceforge.net/.