...

Ramdisk zur Beschleunigung von Amavis erstellen unter Linux

Im täglichen Gebrauch eines Webservers fallen einige Dienste auf die mit steigenden Anfragen immer länger brauchen um eine Anfrage zu bearbeiten und somit den Server belasten.
Ein typisches Beispiel ist die Schnittstelle zwischen Mailserver und Virusscanner: Amavis, der die eMails temporär speichert und wieder liest. Dies erzeugt natürlich bei größeren Anlagen einen hohen Bedarf an Zugriffen auf die Festplatten oder SSDs.
Hier bietet es sich an diese Dateioperationen in den Arbeitsspeicher auszulagern um so eine deutlich schnellere Bearbeitung zu gewährleisten.

Andere Beispiele wären das /tmp Verzeichnis selbst in dem ggf. php Session Dateien abgespeichert werden, oder auch Logdateien.

Beim Speichern im RAM besteht natürlich immer die Gefahr eines Verlustes durch einen Defekt am System, oder einem Serverneustart. Man sollte daher immer nur unwichtige Daten dort speichern, oder für eine regelmäßige Sicherung sorgen.

Eine RAMDISK für Amavis kann ganz einfach mit wenigen Befehlen erstellt werden.

Für die Einrichtung einer Ramdisk benötigen wir das Verzeichnis in dem Amavis die Dateien speichert und die Benutzer und Gruppen ID.

Beides lässt sich am einfachsten mit

grep ‚amavis‘ /etc/passwd

auslesen.

amavis:x:497:497:Amavis email scan user:/var/amavis:/bin/sh

Der Pfad in diesem Beispiel lautet /var/amavis. Die temporären Dateien werden dann in dem /var/amavis/tmp Verzeichnis gespeichert. Für dieses Verzeichnis wollen wir eine Ramdisk erstellen.

Die BenutzerID ist die erste Zahl 497 gefolgt von der GruppenID die in diesem Fall auch 497 lautet.

In der /etc/fstab geben wir nun folgende Zeile ein, damit die Ramdisk auch nach einem Neustart erstellt wird:

tmpfs /var/amavis/tmp tmpfs defaults,size=256m,mode=750,uid=497,gid=497 0 0

Dir Größe der Ramdisk sollte nicht zu klein gewählt werden, weil amavis bei Überschreiten der Grenze sonst eMails abweist. 256MB sind in den meisten Fällen ausreichend.

Den aktuellen Bedarf kann man ja z.B. mit

du -hs /var/amavis/tmp

ermitteln. Das Ergebnis z.B. 11M /var/amavis/tmp gibt dann an, wieviele Megabyte bereits im Verzeichnis liegen. Zu beachten ist aber auch, dass an Tagen mit einem hohen Mailaufkommen durch Spam oder grossen Dateianhängen natürlich auch mehr Platz benötigt wird.

Im Notfall kann man aber immer noch die Ramdisk wieder entfernen oder vergrößern.

Nun können wir die Ramdisk einfach einhängen mit

mount /var/amavis/tmp

Mittels

df -h

tmpfs 512M 0 512M 0% /var/amavis/tmp

können wir dann erkennen, dass unsere Ramdisk aktiviert und leer ist.

Ab sofort ist die Bearbeitung von amavis rasend schnell.

Aktuelle Artikel