Gezähmter HHVM

Gezähmter HHVM

HHVM ist eine virtuelle Maschine für HipTop, welches PHP-Skripte in Maschinencode übersetzt und anschließend ausführt. Die übersetzten Skripte werden gespeichert und bei wiederholtem Aufrufwerden die bereits übersetzte Programm ausgeführt. Dadurch ergibt sich eine extreme Leistungssteigerung gegenüber der bisher üblichen Methode, PHP-Skripte durch mod_php oder PHP per FastCGI immer wieder neu zu analysieren und auszuführen.

Bei Webservern wird HHVM üblicherweise als Daemon ausgeführt und über FastCGI angesprochen. Entsprechende Konfigurationsdateien für Apache oder auch Nginx werden automatisch installiert.

Leider ist HHVM in den bisher bekannten Standardinstallationen sehr speicherhungrig. Die aus PHP bekannte Einstellung für den maximal von einem Skript zu benutzenden Speicher (memory_limit) wird auf die maximal am Server verfügbare Speichergröße eingestellt und auch vom Prozess reserviert, was schnell zum Auslagern von anderen Prozessen führen kann. Auf dem Webserver gibt es kaum Skripte, die mehrere Gigabyte an Speicher benötigen.

Abhilfe schafft das manuelle Setzen der maximal von einem Skript verwendbaren Speichergröße. Dazu trägt man in /etc/hhvm/php.ini z.B. folgendes ein:

memory_limit = 512M

Damit bläht sich der HHVM-Prozess nicht mehr auf den maximal zur Verfügung stehenden Speicher auf und andere Prozesse auf dem Webserver brauchen nicht mehr ausgelagert zu werden.

Mit entsprechenden Statistik-Tools (hier Munin) ist der Erfolg sofort sichtbar:

HHVM Memory

HHVM Memory

HHVM  Linux  OSS  PHP 

Siehe auch

Um Kommentare lesen oder verfassen zu können benötigen wir deine Zustimmung zum Speichern eines Cookies.