comm-press: Your Drupal agency in Hamburg, Germany: Consulting, training, programming, service, webdesign and hosting

xhprof . xhprof für Drupal installieren

von Karsten Frohwein
am

In diesem Beitrag beschreibe ich, wie man xhprof auf einem Debian-artigen System installiert und mit Drupal benutzt.

Zuerst den aktuellen xhprof Stand von github ziehen:

cd /opt sudo git clone https://github.com/facebook/xhprof.git cd xhprof/extension sudo phpize sudo ./configure sudo make sudo make test sudo make install

Damit hat man sich die .so gebaut und installiert. Das "make test" kann man weglassen. Es ist aber nett, die Binary zu testen und das Resultat dann auch an die PECL-Liste zu schicken. Man kann übrigens auch den Quelltext über PECL beziehen und kompilieren lassen, aber so ist es nach meinem Geschmack - ohne hier ein echtes Für und Wider zu haben.

Danach unter Ubuntu Folgendes:

cd /etc/php5/conf.d sudo nano xhprof.ini

In diese xhprof.ini schreibt man:

[xhprof] extension=xhprof.so xhprof.output_dir=/tmp

Und Graphviz installieren:

sudo apt-get install graphviz

Damit sieht man die tollen Ablauf-Diagramme.

Das xhprof.output_dir ist recht wichtig. Bitte beachtet, dass wenn es /tmp ist, die Daten bei jedem Booten weg sind, da das eine RAM-Disk ist. Wenn ihr die Daten irgendwo anders speichert und Drupal per devel dazu eingestellt habt, Daten zu sammeln, können das schnell sehr, sehr viele Dateien werden. Also ausprobieren und sich nicht die Platte blockieren lassen!

Nun sieht man ob xhprof läuft:

% php -i | grep xhprof /etc/php5/cli/conf.d/xhprof.ini xhprof xhprof => 0.9.2 OLDPWD => /opt/xhprof/extension _SERVER["OLDPWD"] => /opt/xhprof/extension

Grundsätzlich kann man nun xhprof einsetzen.

Man braucht aber noch zwei Dinge um effizient damit zu arbeiten:

  1. Der Ordner xhprof/xhprof_html muss über den Apache erreichbar sein. Ich beschreibe hier nicht, wie man einen Apache vHost einrichtet. Von daher einfach das Verzeichnis unter z.B. xhprof.local veröffentlichen. Hier findet ihr dann eine Liste der gespeicherten Leistungsdaten, die ihr euch dann mit dem PHP Tool das ihr gerade in den vHost gepackt habt detailliert ansehen könnt. Dazu schreibe ich irgendwann mal mehr.

  2. Ein Drupal mit Devel installiert.

Bei mir liegt die Bibliothek unter /srv/www/xhprof. Das muss devel wissen um die PHP-Dateien nutzen zu können. Achtet bitte darauf, dass openbasedir-Restriktionen hier problematisch sind. Oder man könnte einen include-Pfad setzen. Wie man mag. Bei mir kann der www-data das Verzeichnis lesen. Das andere ist die URL des vHost, damit devel uns einen schönen Anker bauen kann. Hat man das alles eingerichtet, steht nun unter jedem Drupal-Seitenaufruf eine URL zum Leistungsprofil. Viel Spaß damit!