Seit der Version 5.1.4 bringt MySQL das Tool mysqlslap mit. Wörtlich übersetzt würde dies dann folgendes bedeuten:
MySQL eine klatschen
Und genau das macht das Tool auch. Mit mysqlslap kann man die Datenbank so richtig unter Last bringen und zum einen Bottlenecks finden oder auch bereits vollzogene Tuningarbeit auf Tauglichkeit prüfen. Über eine Vielzahl von Parametern kann der Aufruf, die Art und Anzahl der Statements als auch der für die Analyse notwendige Debug-Ouptut beeinflusst werden. Die Kenntnis über das Nutzungsprofil der Datenbank ist zwar Voraussetzung für die richtige Konfiguration der Datenbank, jedoch kann das Tool Out-of-the-Box diverse Nutzungsprofile “abspielen”.
Oft fehlt es auch den Entwicklern an adäquaten Werkzeugen um ihre aktuelle Version hinsichtlich Query-Performance zu testen und die Auslastung des Datenbank-Servers, mit bereits in der MySQL-Serie erwähnten Tools wie InnoTop und MyTop, zu beobachten.
Bei der Entwicklung unter PHP muss, z.B. beim Erstellen von frontends, in Zeiten von Web 2.0, exzessiv Gebrauch von Javascript gemacht werden. An sich ist das sicherlich kein Problem, wenn man davon absieht, dass sich die Hersteller der großen browser wohl nie auf einen Standard einigen werden.
Um den Befehlssatz bei solchen PHP-Javascript-Tasks etwas homogener zu gestalten, bietet sich der Einsatz einer recht nützlichen Ansammlung von Funktionen an, welche im Internet unter der URL phpjs.org zu haben sind.
Genannte Ansammlung ist auch unter dem Namen PHP.JS bekannt. Hierbei handelt es sich um eine Portierung von wohlbekannten PHP-Funktionen nach Javascript, womit die ewige Suche nach Javascript-Pendants zumindest eingeschränkt wird, da der derzeit bereits 190 (!) Äquivalente im Funktionsumfang enthalten sind.
Wem die derzeitige Anzahl an Portierungen zu gering ist, wird angeraten, einfach weitere Funktionen zu posten. Damit wird dieses wirklich nützliche Projekt, welches auch so kleine Problemchen wie sha1() löst, am Leben erhalten und stetig erweitert.
Viel Spaß damit!
Die laut eigener Aussage wahrscheinlich weltweit einzigen im Pharma Bereich die eine Open-Source Lösung in einer pharma-validierten Umgebung für die Systemüberwachung implementiert haben ist die Firma Daiichi-Sankyo Europe GmbH aus München.
Eingesetzt wird Nagios 3.0 und PNP4Nagios für die Visualisierung der Messergebnisse, zusätzich werden verschiedene Serverräume mittles MessPC überwacht.
Wir freuen uns bei dieser möglicherweise einzigartigen Nagios Installation beteiligt sein zu dürfen und hoffen weitergehend das OpenSource im medizinischem Bereich noch weiter Fuß fassen kann.
Wie im letzten Post dieser Serie bereits versprochen, haben wir alle Themen der MySQL Performance Serie nochmals zusammengefasst um einen Überblick über alle erläuterten Themen zu geben.
Durch Feedback und Fragen unserer Leser ist die Serie dann doch etwas größer ausgefallen als erwartet, aber das kann eigentlich ja nur gut sein
Nochmals vielen Dank an alle für das zahlreiche Feedback und das Interesse an dieser Serie.
Recently I visited one of our Austrian customers in the city of Schwaz. Tyrolit, part of the Swarovski Group and one of the world’s leading suppliers of abrasives, are based there.
In common with most large companies their IT department needs to respond 24×7 to any serious problems, and they have a weekly on-call rota for the system administrators.
As always with Nagios, there is more than one way to solve this - one of the most popular being to send all alerts to a single email address and/or ‘phone number which is passed to whomever has the rota. It’s a simple and fairly easy way to manage the problem, especially if you use one of the managed group-call-number services available on the market (e.g. Vodafone CorporateVPN). One of the biggest disadvantages however is that you can no longer find out who received the alert. Plus you are adding another point-of-failure into the notification chain.
For some customers I would recommend handing all notifications to an external handler (e.g. NoMa), which offers a simple configuration GUI; but it wasn’t suitable in this case - so we decided to send the alerts to a Nagios contact group and built a small webpage to manage this group and create Nagios configuration files. With a couple of mouse clicks the Admin-on-Call can be changed.
This is one of the strengths of Nagios. The ability to easily expand the functionality with a script if need be. Which reminds me: I must upload it to www.NagiosExchange.org …

Bei Datenbankverbindungen in PHP gehen die Meinungen der Entwickler schnell auseinander. Jeder verwendet die schnellste Lösung oder schreibt schnell eine Klasse welche die wichtigsten Funktionen übernimmt. Mittlerweile stehen dem Entwickler ja drei native Schnittstellen zur Verfügung: mysql, mysqli und PDO - wobei jede Vor- und Nachteile aufweist. Und es gibt eine Reihe von Abstraktionsschichten welche das Auslesen und Bearbeiten von Datensätzen erleichtern sollen wie z.B. ADODB, Creole/Jargon oder die Tools um MDB2 auf PEAR. Allerdings deckt keines dieser Werkzeuge den gesamten Bereich richtig ab. Schemadateien müssen von Hand erzeugt werden, Mapper von PHP Objekten sind umständlich zu konfigurieren, initialer Datenimport muss von Hand erledigt werden und komplizierte Abfrageteile werden dann doch wieder in SQL realisiert.
Seit 2006 wird an dem ORM Tool Doctrine geschraubt welches seit September in einer stabilen major release vorliegt. Doctrine orientiert sich an Hibernate aus der Javawelt und an den Active Record Pattern von Ruby on Rails. Das tolle ist: Man schreibt fast (!) keine einzige Zeile SQL mehr.
Die Relationen aus der Datenbank werden auf verschiedene Arten in PHP Objekte übersetzt. Man kann entweder gleich PHP Klassen schreiben (Aus denen dann später auch das Datenbankmodell erzeugt werden kann), lässt sich die Klassen aus einer bestehenden Datenbank erzeugen oder schreibt das Modell in einer deskriptiven, Doctrine eigenen Sprache welche auf YAML basiert. Es ist auch möglich verschiedene Datenbanken in einem logischen Modell zu Verbinden. Selbst solche Strukturen verhalten sich in PHP völlig transparent.
Doctrine an sich besteht aus einer Reihe von Objekten wie Connections, Tables, Collections, Records, Queries. Letztere können durch eine eigene, an SQL angelehnte Sprache, abgefragt werden (Anlehnung an HQL von Hibernate: DQL). Alle diese Objekte folgen speziefischen Entwurfsmustern wie Singletons, Prototypes oder EventListeners und können dadurch einfach erweiter werden.
Für kleinere Projekte schießt man damit sicherlich mit Kanonen auf Spatzen, auch benötigt man etwas Einarbeitszeit um den Baukasten zu verstehen. PHP geht damit aber insgesamt einen großen Schritt in Richtung Enterprisesoftware. Orientiert sich ein geplantes Projekt in diese Richtung ist Doctrine sicherlich nicht verkehrt und nimmt für die Zukunft eine Menge Arbeit ab: Cheatsheet von Doctrine.
Gestern habe ich auf der Systems einen Vortrag über Nagios gehalten. Das ganze fand im Rahmen der “Perspektive Open Source” statt. Das ist eine Konferenz und Roadshow, die die Systems zusammen mit der IHK und dem Linux Magazin veranstaltet. Ich hatte in dem Rahmen vor einiger Zeit schon mal einen Vortrag über Bacula gehalten. Wer Interesse hat, kann sich die Folien des Nagios Vortrags hier herunterladen:

In vielen Teilen der Blog-Serie sind wir auf Möglichkeiten eingegangen, Probleme zu identifizieren und deren Ursache zu analysieren und zu eliminieren. Im täglichen Betrieb fehlt es jedoch meist an der Zeit Statusvariablen zu filtern, Ausführungspläne einzelner Statements zu durchforsten oder aktuelle Datenbankverbindungen zu tracen.
Eine große Erleichterung bieten hier Werkzeuge wie MyTop und InnoTop. Beide geben in einem topähnlichen Stil den aktuellen Status der Datenbank wieder und bieten Aufschluss über die aktuell laufenden Prozesse. InnoTop, der Name verrät es bereits, ist stärker auf die Parameter der InnoDB-Engine spezialisiert, welche sich in der Konsole auch mit dem Befehl “show engine innodb status” auswerten lassen.
Besonderes Merkmal von InnoTop ist die Möglichkeit sich auf mehrere Server gleichzeitig zu verbinden und diese zu Gruppen zusammenzufassen. So kann man auch in einer geclusterten Umgebung gut den Überblick behalten.
Vorerst ist dies der letzten Teil unserer Performance-Serie rund um MySQL, aber weitere Serien werden folgen. In den nächsten Tage wird es noch eine Zusammenfassung der einzelnen Artikel zum Abschluss geben.
Wir bekommen viele Anfragen von Kunden, die nach einem Starterkit für die Überwachung Ihrer Serverräume suchen. Wir bieten schon länger aus diesem Grund Starterkits von Sensatronics, MessPC und AKCP an. Als Neuzugang können wir in diesem Bereich ab sofort Überwachungshardware von der Firma HW group aus Tschechien anbieten.
Die Hardware der HW group kann vollständig über das Webfrontend der Poseidon Geräte konfiguriert werden. Auch die Alarmierung per Email, SNMP Trap und - je nach Modell - auch per SMS wird über das Webfrontend konfiguriert.
Besonders interessant ist zum einen das Einsteigerkit “HW group Poseidon 3262 Tset“, welches aus dem Poseidon Messgerät und einem Temperatursensor besteht und zum anderen das “HW group Poseidon 3265 GSM2 Tset“, welches neben dem Temperatursensor auch über ein externes GSM Modem für den SMS Versand verfügt.
Diese Artikel sind ab sofort bei uns im Shop verfügbar.
Ich sitze gerade in der Programmkomitee Sitzung und wir besprechen die Vorträge für 2009. Nachdem inzwischen die meisten Themen durch sind, kann ich vermelden, dass alle Vorträge, die wir eingereicht haben, angenommen wurden. Nicht weil wir Partner der OSMB sind, sondern weil die Vorträge so gute Noten bekommen haben.
Im einzelnen sind es die folgenden Vorträge:
- Xen-Virtualisierung in hochverfügbaren Umgebungen (Bernd Erk, NETWAYS GmbH)
- Skalierung von Web-Anwendungen mit Open Source (Benjamin Ohloff, StayFriends GmbH)
- Lösungen für das Open Source Data Center (Bernd Erk, NETWAYS GmbH)
- Überwachung großer IT-Umgebungen mit Nagios (Julian Hein, NETWAYS GmbH)
In den nächsten Tagen werde ich zu allen Vorträgen noch den Abstract und eine Sprecher Bio nachreichen.
Last 5 Comments