Debian: Optimierung für SD/CF-Karten

1

Der Trend bei den Speichermedien geht immer weiter hin zu Solid Disks die auf Speicherkarten wie DC/CF-Karten basieren. Die Vorteile sind reltaiv deutschlich zu erkenne. Solid Disks verbrauchen wesentlich weniger Strom. Sie entwickeln keine Abwäre, was wiederum bewirkt das weniger gekühlt werden muss. Da SD-Speicher auch nicht rotieren sind sie auch nicht hörbar. Jedoch steht all diesen Vorteilen noch ein nicht unerheblicher Nachteil entgegen. SD-Speicher sind langsamer als herkömmliche Festplatten insofern man nicht gerade auf die teuren Modelle wie die X25-E von Intel setzt.

Ich habe zum Beispiel einen Igel (XP-5610) – den es zum Igel Training kostenlos dazu gab – mit Debian Linux installiert. Das Gerät dient für mich als OpenVPN Server, SMTP-Relay und Proxy Server. Jedoch merkt man sehr schnell nach der Installation das das Gerät kurzzeitig zum stocken kommt sobal zuviele Schreibzugriffe auf einmal durchgeführt werden müssen. Hier besteht allerdings die Möglichkeit, dass man das System selbst nocht etwas für den Schreibzugriff auf die interne CF-Karte sowie einen USB-Stick optimieren kann.

Fangen wir mit der /etc/fstab an. Linux speichert pro bearbeitete Datei/Ordner die letzte Zugriffszeit. Darauf kann mann verzichten da dies unnötige Schreibvorgänge sind. Des weiteren kann man Dateien die sich oft ändern in eine Ramdisk verlegen. Klar, diese Dateien überleben keine Reboot. Bei einem System was nicht kritisch ist, kann man jedoch evtl. auf die Log-Dateien verzichten. Da aktuellen Log Einträge kann man ja immer noch einsehen. Ebenso kann das apt-get Update Verzeichniss in eine Ramdisk wandern, die *.deb Dateien benötigt man nach dem Update/einer Installation meißt nicht mehr.

about:configproc            /proc           proc      defaults        0       0
/dev/hda1       /                         ext3    nodiratime,noatime,rw,errors=remount-ro,commit=120   0       1
tmpfs           /tmp            tmpfs defaults,noatime,mode=1777 0 0
tmpfs           /var/tmp        tmpfs defaults,noatime,mode=1777 0 0
tmpfs           /var/log        tmpfs defaults,noatime,mode=0755 0 0
tmpfs           /var/log/apt    tmpfs defaults,noatime 0 0
tmpfs           /var/cache/apt  tmpfs defaults,noatime,nodiratime,mode=0755      0  0

Das Problem mit Ramdisks ist jedoch, dass diese beim booten relativ spät erstellt werden und einige Dienste vorher bereits versuchen auf die Dateien zuzugreifen bzw. die Ordnerstruktur nach jedem Reboot neu angelegt werden muss. Dies lässt sich jedoch über die Date /etc/rc.local lösen. Hier kann man in der Date /etc/rc.local vor exit 0 die entsprechenden Einträge einfügen. Beispiel:

for dir in apparmor apt news cups dist-upgrade fsck gdm installer news samba squid unattended-upgrades ; do
mkdir -p /var/log/$dir
done
chown proxy:proxy /var/log/squid

mkdir /var/cache/apt/archives/
mkdir /var/cache/apt/archives/partial
exit 0

Des weiteren lässt sich das System über die/etc/sysctl.conf weiter Optimieren.

#Zeitraum zwischen dem letzten Lesevorgang und dem nächsten Schreibvorgang
vm.laptop_mode=120
#Wie oft soll der Kernel prüfen ob "dirty changes" vorhanden sind
#um diese dann auf die Platte zu schreiben (Zentisekunden)
vm.dirty_writeback_centisecs=12000
#Wie alt müssen "dirty changes" sein damit sie weg geschrieben werden
#Sinnvollerweise vm.dirty_expire_centisecs = vm.dirty_writeback_centisecs
vm.dirty_expire_centisecs=12000
#Wieviel Prozent das RAMS dürfen von einem Prozess mir "dirty changes" gefüllt
#sein bevor der Prozess gezwungen wird diese Änderungen zu schreiben
vm.dirty_ratio=10
vm.dirty_background_ratio=1
# Bei Wieviel Prozent freien Speicher soll das System anfange zu swappen
vm.swappiness = 0

Nun kommt noch das logging an die Reihe. Der syslog Daemon schreibt einige Log-Dateien sofort und andere wiederrum Zeitverzögert. Der Sinn ist, dass Systemrelevante Informationen sofort in Stein gemeißelt werden (Debugging Informationen) während unwichtigere Infos ruhig verzögert geschrieben werden können. Welche Log-Datei wie behandelt wird erkennt man in der /etc/syslog.conf an dem führenden – vor der Log-Datei. Alle  Dateien mir – werden verzögert geschrieben. Diese Änderung macht jedoch nur Sinn, wenn die Logs nicht sowieso schon in einer Ramdisk liegen 😉

auth,authpriv.*                 -/var/log/auth.log
*.*;auth,authpriv.none          -/var/log/syslog
#cron.*                         -/var/log/cron.log
daemon.*                        -/var/log/daemon.log
kern.*                          -/var/log/kern.log
lpr.*                           -/var/log/lpr.log
mail.*                          -/var/log/mail.log
user.*                          -/var/log/user.log

Firefox

Da Firefox beim Browsen immer einen lokale Cache anlegt, bietet es sich an, diesen bei genügend RAM in eine Ramdisk wie /tmp zu verlagern. Dazu muss nur die Webseite about:config aufgerufen werden. Dort wird dann ein weiterer Eintrag Namnes browser.cache.disk.parent_directory erstellt, der als Wert den Pfad zum Cache Verzeichniss enthält.

Links:

Teilen.

Über den Autor

Seit der Ausbildung zum Fachinformatiker Systemintegration (2002-2005) bei der DaimlerChrysler AG, beruflich im Bereich der E-Mail Kommunikation (Exchange, Linux) sowie des ActiveDirectory, mit entsprechenden Zertifizierungen (MCSE 2003, MCITP Ent.-Admin 2008, MCSE 2012, LPIC 1-3) tätig. Abgeschlossenes Studium zum Master of Science der IT-Management an der FOM sowie zertifizierter Datenschutzbeauftragter. Aktuell im Projektmanagement tätig.

1 Kommentar

  1. Pingback: Speicher, SWAP, Stabilität optimierung für Android - Android-Hilfe.de

Antworten