ImageMagick auf vHost von Host Europe extrem langsam
Einige Webanwendungen müssen Grafiken verändern und erzeugen und nutzen dazu entweder ImageMagick oder GraphicsMagick. Während sich GraphicsMagick auf den virtuellen Servern von Host Europe ganz normal verhält, geht ImageMagick beim Erzeugen oder Konvertieren von Grafiken extrem behäbig zu Werk.
Schuld daran ist das Feature OpenMP das beim Kompilieren von Programmen zur Optimierung von Multithreading-Aufgaben gesetzt wird. Das mit den Distributionen ausgelieferte ImageMagick-Paket hat dieses Feature standardmäßig aktiviert und läuft in der virtualisierten Umgebung von Host Europe daher sehr imperformant (teilweise dauern einzelne Prozesse mehre Sekunden, statt Millisekunden).
Lösung
Abhilfe schafft das selbstständige Kompilieren von ImageMagick ohne aktiviertes OpenMP-Feature. Dazu gehen Sie unter Ubuntu 14.04 LTS wie folgt vor:
Ergänzen Sie die Paket-Listen um die Source-Quellen für den aktuellen Release. Dazu fügen Sie in der Datei /etc/apt/sources.list die folgende Zeile ein:
deb-src http://de.archive.ubuntu.com/ubuntu thrusty main restricted universe multiverse
Nun aktualisieren wir die Paketverwaltung und laden die für das Kompilieren von ImageMagick notwendigen Komponenten.
apt-get update
apt-get install build-essential
apt-get build-dep imagemagick
Danach laden wir den aktuellen Source-Code von ImageMagick herunter und entpacken diesen (z.B. im Verzeichnis /tmp).
wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz
Nach dem Wechsel in das entpackte Verzeichnis können wir ImageMagick mit den folgenden drei Befehlen kompilieren und installieren:
./configure --prefix=/usr/local/src/ --disable-openmp
make
make install
Ab nun steht das selbst kompilierte ImageMagick unter dem Pfad /usr/local/src/bin/ bereit. Der eigene Pfad hat den Vorteil, dass unsere eigene Version nicht mit der durch die Paketverwaltung installierten Version kollidiert. So können Sie jetzt auch direkt den spürbaren Performanceunterschied zwischen den beiden Versionen testen.
Einziger Nachteil dieser Lösung: Sie müssen sich ab sofort selbst um die Aktualisierung von ImageMagick kümmern und dieses bei jeder neuen Version erneut selbstständig kompilieren.
Mehr dazu auch in einer Anleitung von Host Europe: https://faq.hosteurope.de/?cpid=17180