WordPress Docker Performance

Das mein Blog mit der Software WordPress lÀuft, sollte eigentlich klar sein. Die ganze Zeit kÀmpfte ich mit massiven Performance Problemen die eigentlich nicht am Hostsystem liegen können. Andere Softwareprodukte laufen auf meinem NetCup VPS nÀmlich schnell und zuverlÀssig. Die Wordress Docker Performance leider ein wenig.

Im Internet gibt es nicht wirklich viele Informationen zu dem Problem. Meist wird behauptet, dass es am Hostsystem liegen soll. Da ich das bereits ausschließen konnte wurden viele BeitrĂ€ge obsolet.

In den Tiefen Wurzeln von Google (quasi ab Seite 4) entdeckte ich dann einen Beitrag der darauf hin wies, dass die Verwendung von bind mounts unter Docker hĂ€ufig zu Performance Problemen fĂŒhren kann. Gerade bei Webseiten soll, so die Informationen, immer nur eine Datei gleichzeitig geöffnet werden. Das beeintrĂ€chtigit die WordPress Docker Performance dann sehr.

Ich wollte diesen Blog also nicht direkt umstellen, sondern testete erst einmal mit einer neuen Installation und siehe da: Es rannte!

Entsprechend habe ich in meiner docker-compose.yaml Datei ein zweites Volume hinzugefĂŒgt und den Stack neu gestartet. Anschließend ĂŒber die CLI unter Linux die Dateien vom bind mount in das Volume kopiert.

Docker bietet zwar mit docker cp ein eigenen CLI Befehl, allerdings wollte ich das direkt am Linux System machen. Ob das gut ist, wird sich noch raus stellen.

Mittels

cp -R {bind mount pfad}/* /var/lib/docker/volumes/{volume id}/_data/wp-content/
chown www-data. -R /var/lib/docker/volumes/{volume id}/_data/

die Daten kopiert und die Rechte angepasst. Nach Neustart des Stacks merke man schon einen deutlichen Performanceboost.

Anschließend habe ich direkt noch Redis als Cache hinzugefĂŒgt. Mit dem Plugin Redis Object Cache wird das dann unter WordPress aktiviert. In meiner Compose Datei habe ich natĂŒrlich erst noch den Redis Container hinzugefĂŒgt:

  wordpress-cache:
    image: redis:latest
    container_name: teqqyde-cache
    restart: unless-stopped
    depends_on:
      - wordpress-app
    networks:
      - default

Unter Docker findet das Plugin den Redis Server nicht. Also muss noch die wp-config.php Datei angepasst werden

vim /var/lib/docker/volumes/{volume id}/_data/wp-config.php

Dort fĂŒgen wir unter den ganzen anderen „define“ Variablen noch die Zeile

define( 'WP_REDIS_HOST',    'wordpress-cache');

hinzu. Nun wieder den Stack komplett neu starten und das Plugin aktivieren. Nach kurzer Zeit gibt es auch bereits die ersten Informationen in den Metriken.

Wordpress Docker Performance mit Redis verbessern
WordPress Docker Performance mit Redis verbessern

Sicherlich gibt es noch weitere Punkte um die WordPress Docker Performance zu verbessern, allerdings reicht mir diese erst einmal aus.

Wenn du noch weitere Tipps hast, schreibe sie mir doch gern unten in die Kommentare.

2 Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.