Schreibzugriffe auf einen Datenträger/ Speichermedium (vor allem SD-Karten) minimieren:
- Vorteile:
- längere Haltbarkeit des Speichermediums
- geringerer Stromverbrauch
- geringere Wahrscheinlichkeit für Headcrashes bei HDDs, da der Kamm/Leseköpfe in Parkposition geführt werden kann
- Wear levelling für SD-Karten optimieren:
- Wear levelling=Verteilung von physischen Schreibzugriffen für die selbe logische Adresse
- bei SD-Karten sollte immer genug freier Platz (mehrere GB) gelassen werden, da viel beschriebene logische Adressen (z.B. selbes Offset innerhalb einer Datei) nicht alternierend auf bereits belegten Speicher geschrieben wird
- 2 Möglichkeiten, um das zu erreichen:
- das Dateisystem sollte sich nicht über die gesamte SD-Karte erstrecken
- innerhalb des Dateisystems genug freien Platz lassen
- Prozesse mit (Schreib-)Zugriffen identifizieren mittels
- iostat (im "sysstat"-Paket enthalten):
"kB_wrtn" beim ersten Bericht: Anzahl der geschriebenen KB seit dem Betriebssystem-Start - fatrace (file access trace--https://launchpad.net/fatrace)
- Vorteil: gibt auch den Dateipfad mit aus
- gibt pro Datei-Zugriff in 1 Zeile aus:
Programm-Name, zugehörige Prozess-ID (da mehrere Instanzen des selben Programms möglich sind), Zugriffs-Art auf die Datei, Dateipfad der Datei
- Beispiel einer Zeile:
"iceweasel(28720): W /home/sgeb/.mozilla/firefox/kgxp7e24.default/cookies.sqlite-wal"
Programm-Name Prozess-ID Modus Dateipfad iceweasel 28720 W (geschrieben) /home/sgeb/.mozilla/firefox/kgxp7e24.default/cookies.sqlite-wal - Beispiel einer Zeile:
- ab Version 0.10: nur die Datei-Zugriffe mit Erstellung und Schreiben ausgeben lassen "./fatrace --filter=W"
- unter Version 0.10: nur die schreibenden Zugriffe ausgeben lassen: "./fatrace | grep "): W " "
- iotop (http://guichaz.free.fr/iotop/)
- Warnung: (Schreib-)zugriffe beendeter Prozesse werden nicht mehr angezeigt. Falls also ein Prozess nur kurzfristig geschrieben hat, sieht man das mitunter nicht mehr in der Ausgabe!
- Kommandozeilen-Optionen:
- "--only" : nur Prozesse/ Threads mit IO anzeigen
- "--accumulated" : summiert die Lese- und Schreib-Datenmenge auf--sehr empfehlenswert
- Beispiele:
- empfohlen:"sudo iotop --only --processes --accumulated"
- -"sudo iotop --only --pid=`pidof ntpd` --accumulated"
- iostat (im "sysstat"-Paket enthalten):
- Schreibzugriffe minimieren:
- Swapping deaktivieren (Raspbian) :
"sudo chmod u-x /etc/init.d/dphys-swapfile" - auf RAMdisk statt auf Datenträger speichern:
- Cache (für Internet-Browser wie Firefox, Chromium etc.) auf RAMdisk auslagern: (Zeile in /etc/fstab)
"tmpfs /home/username/.cache tmpfs defaults,size=250M" - DHCP log in RAM disk speichern:
- "mount -t tmpfs -o rw,nosuid,nodev,noexec,relatime,size=50k none /var/lib/dhcp"
- permanent: in "/etc/fstab" eintragen: "tmpfs /var/lib/dhcp tmpfs rw,nosuid,nodev,noexec,relatime,size=100k"
- Cache (für Internet-Browser wie Firefox, Chromium etc.) auf RAMdisk auslagern: (Zeile in /etc/fstab)
- Ausgabe von Cron-Jobs in Log-Dateien (/var/log/...) verhindern:
/etc/rsyslog.conf- Cronjobs ";cron.none"
-hinzufügen vor Zeile mit "/var/log/messages"
dhclient: -dhclient.none in Zeile mit /var/log/cron.log - (sudo) service rsyslog restart
- Cronjobs ";cron.none"
- Swapping deaktivieren (Raspbian) :