PerformanceRAMDisk

Guite edited this page Nov 12, 2014 · 6 revisions
Clone this wiki locally

Festplattenzugriffe durch RAM Disk reduzieren

Vorbemerkung: Auf normalen Webspaces kann man meistens keine RAM-Disks einrichten. Das geht nur mit eigenen Servern.

Um IO Zugriffe auf der Festplatte zu minimieren, können von Zikula angelegte Cache Dateien auf eine RAM-Disk geschrieben werden. Generell empfiehlt sich dieses Vorgehen nur, wenn IO Probleme auf dem Server bestehen und großzügig von Cache-Features von Smarty und Doctrine 2 (früher ADOdb, Doctrine) gebraucht gemacht wird. Außerdem sollte genügend RAM vorhanden sein, mit ca. 100 MB Verbrauch durch Smarty und Persistenzschicht ist zu rechnen. Dieser Speicher steht dem übrigen System nicht mehr zur Verfügung.

  • Als erstes muss die RAM Disk aktiviert werden. Dies ist von Distribution zu Distribution unterschiedlich, das genaue Vorgehen ist dem Handbuch zu entnehmen.
  • Anschließend müssen zuerst die Verzeichnisse auf der Ram Disk angelegt werden, unter Debian ist dies standardmässig unter /dev/shm zu erledigen. Es empfiehlt sich, zwecks Übersicht, die Zikula Struktur (/pnTemp/pnRender_cache /pnTemp/adodb usw.) zu übernehmen
  • Schreibrechte für den Webserver User setzen
  • Mit diesen Befehlen werden die Verzeichnisse gemountet und "umgelenkt":
mount –bind /dev/shm/pnTemp/pnRender_cache /var/www/pnTemp/pnRender_cache
mount –bind /dev/shm/pnTemp/adodb /var/www/pnTemp/adodb

Achtung!

Die RAM Disk kann auf eine bestimmte MB Grösse beschränkt oder dynamisch erstellt werden. Weitere Details sind dem Linux Handbuch zu entnehmen.

Es ist zu beachten, dass bei der ersten Variante die RAM Disk voll laufen kann, bei der zweiten Variante kann das gesamte RAM aufgebraucht werden. Beides führt zum Stillstand von Zikula! Ein zu erwartender Verbrauch kann durch einen Blick in das aktuelle /pnTemp Verzeichnis eruiert werden. Es ist zu empfehlen, die RAM Disk mittels eines cronjobs jede Nacht komplett zu löschen, um das Problem zu umgehen. Dabei werden aber natürlich auch die Cache Dateien gelöscht.