Optimierung:ramdisk anlegen
Aus IPFireWiki
Inhaltsverzeichnis |
Wozu eine RamDisk
Dies Optimierung sollte nur der anwenden, der auch genügent Ram in seinem IPFire verbaut hat. Zu empfehlen wären hier mindesten 512 MB
Vorteile
- Das ist schnell und einfach erklärt, der Geschwindigkeits gewinn ist enorm.
- Für IPFire die auf einer SD-Card installiert wurden, sind somit weniger Schreibzugriffe nötig, das lässt die SD-Card länger leben.
Nachteile
- bei Stromausfall gehen die nicht gespeicherten Daten verloren.
- weniger Arbeitsspeicher für den IPFire
Vorbereitung
Zuerst geht ihr mit Putty oder direkt am IPFire auf die Console und loggt euch als root ein. Als Nächtes gebt Ihr
du -sh /var/log/rrd/
ein. Daraufhin bekommt ihr einen Wert ausgegeben, diesen merken wir uns und geben 25 % drauf, dieses sollte der Richtwert für die Ramdisk sein.
Jetzt erstellen wir einen Ordner Namens "ramd", dies geschied mit dem Befehl
mkdir /media/ramd
Als Nächstes tragen wir einen Mount-Punkt in die "fstab" ein, dazu öffnen wir mit "MC" oder "winscp" die Datei fstab.
# # file system mount-point type options dump fsck # order /dev/hda1 /boot ext2 defaults 1 2 /dev/hda2 swap swap pri=1 0 0 /dev/hda3 / reiser4 defaults 1 1 /dev/hda4 /var reiser4 defaults 1 1 proc /proc proc defaults 0 0 sysfs /sys sysfs defaults 0 0 devpts /dev/pts devpts gid=4,mode=620 0 0 shm /dev/shm tmpfs defaults 0 0 /dev/hdc1 /mnt/harddisk auto defaults 0 0 /dev/hdd1 /mnt/harddisk1 auto defaults 0 0 none /media/ramd tmpfs defaults,size=150M 0 0
Im Beispiel ist es der letzte Eintrag in der "fstab". Wichtig ist hier der Eintrag "size=150M", dieser gibt die Größe der RamDisk an.
Mit dem Befehl
mount -a
wird das erstellte Verzeichniss nach /media/ramd gemountet. Die Vorbereitungen sind abgeschlossen, nun geht es ans Eingemachte.
Anpassen von Dateien für die RamDisk
Zu Eurer eigenen Sicherheit und um im Notfall "Alles" rückgängig zu machen, legt von den zu ändernden Dateien eine Sicherheitskopie mittels cp dateiname dateiname.old an.
Sodel, da wollen wir mal. Bevor wir irgendeine Datei ändern stoppen wir den "collectd-Deamon" mit dem Befehl
/etc/init.d/collectd stop
Als Erstes ist die Datei "collectd.conf" an der Reihe. Dies wird von folgenden Inhalt
<ein Auszug der Datei> <Plugin rrdtool> DataDir "/var/log/rrd/collectd" CacheTimeout 300 CacheFlush 900 </Plugin>
nach
<ein Auszug der Datei> <Plugin rrdtool> DataDir "/media/ramd/rrd/collectd" </Plugin>
Wir speichern die Änderung und begeben uns, ohne über LOS zu gehen, zur nächsten Datei.
Als Zweites ist der collectd init Skript an der Reihe. Heir umfassen die Änderungen zwei Abschnitte. Wir bearbeiten also die Datei collectd von
<ein Auszug der Datei> case "$1" in start) if [ ! -e /etc/sysconfig/lm_sensors ]; then boot_mesg "Searching for Sensors..." "yes" | /usr/sbin/sensors-detect > /dev/null evaluate_retval
in
<ein Auszug der Datei> case "$1" in start) boot_mesg "Copying rrd files to ramd..." rm -rf /media/ramd/* cp -pR /var/log/rrd/ /media/ramd/ evaluate_retval if [ ! -e /etc/sysconfig/lm_sensors ]; then boot_mesg "Searching for Sensors..." "yes" | /usr/sbin/sensors-detect > /dev/null evaluate_retval
Der Zweite Abschnitt wird wie folgt abgeändert.
<ein Auszug der Datei> boot_mesg "Stopping Collection daemon..." killproc /usr/sbin/collectd evaluate_retval ;; restart)
Dies wird nach
<ein Auszug der Datei> boot_mesg "Stopping Collection daemon..." killproc /usr/sbin/collectd evaluate_retval boot_mesg "Save rrd files from ramd..." rm -rf /var/log/rrd/ cp -pR /media/ramd/rrd/ /var/log/ evaluate_retval ;; restart)
geändert.
Die nächste Änderung umfast die Graphen für das WebInterface des IPFire. Geändert werden muß in der "graphs.pl", die sich in "/var/ipfire/" befindet, nur eine Zeile. Ich werde hier nur eine Datei als Beispiel machen, die Änderung ist immer die Selbe. Die beiden anderen Dateien befinden sich in "/usr/local/bin/", es sind die Dateien "makegraphs" und "qosd". Auch hier muß nur eine Zeile geändert werden.
Die Änderungen betreffen folgende Zeile
Muß in
Sichern von Dateien aus der RamDisk
Wer die Daten aus der RAM-Disk sichern möchte geht folgendermaßen vor. Im Beispiel werden wir alle 30 Minuten die Daten aus der RAM-Disk auf die Festplatte schreiben lassen. Dies macht zum Beipiel für Systemadministratoren Sinn, da so auch die Daten nache einem Stromausfall, zumindest teilweise, gesichert sind.
Um einen Cron-Job zu erzeugen bearbeiten wir die Datei "root.orig". Folgende Zeile muß eingefügt werden.
<ein Auszug der Datei> # This entry in the root.ini will shut down the collectd-daemon, write the content of # the ramdisk to disk and restart the daemon. */30 * * * * /etc/init.d/collectd stop; /etc/init.d/collectd start
Hiermit wird angewiesen, das alle 30 Minutern der collectd-Doamon gestoppt und anschließend neu gestartet wird.
Abschluss
Sind alle Anpassungen vorgenommen, können wir den "collectd-Deamon" wieder starten, dies geschiet mit dem Befehl:
/etc/init.d/collectd start
Der Start sollte mit einem grünen OK bestätigt werden.
Nun muß auch noch der Cron-Job erneuert werden, dazu geben wir folgenden Befehl ein:
fcrontab -z
Ein Danke geht an Christian Schmidt der diese Optimierung zur Verfügung gestellt hatt.


