Firefox 4x Cache auf tmpfs mit browser.cache.disk.parent_directory legen

Fusselbär

Makefile Voyeur
Hallo, habe da wieder mal was gebastelt und möchte das mit euch teilen.
Der Firefox 4x speichert per default auf Festplatte oder SSD. Der Firefox Cache befindet sich üblicherweise im Ordner:
Code:
~/.mozilla/firefox/FOO.default/Cache/
Die Tilde "~" steht für das Userhome Verzeichnis und FOO.default für den Firefox Profilordner.

Bei jedem Webseitenaufruf werden von Firefox per default Dateien in das Cache Verzeichnis geschrieben.
Nun gibt es aber auf FreeBSD (und auf Linux auch) die Möglichkeit mittels tmpfs Einträgen in der /etc/fstab solche Dateien in einem effizienten Memory File System abzulegen.
Dazu müssen erst mal passende Einträge in der FreeBSD /etc/fstab vorhanden sein:
Code:
tmpfs                   /var/tmp                tmpfs           rw,mode=1777    0       0
Dieser Eintrag muss bei UFS Filesystemen nach dem Eintrag für das mounten des /var Verzeichnises stehen!

Bei Verwendung von ZFS und der ZFS Automountmagie muss noch der Schalter late in die /etc/fstab hinzugefügt werden,
damit das tmpfs erst nach dem ZFS Filesystem gemountet wird, auf dem /var liegt:
Code:
tmpfs                   /var/tmp                tmpfs           rw,late,mode=1777    0       0

Für tmpfs kann entweder das Modul über einen /boot/loader.conf Eintrag geladen werden:
Code:
tmpfs_load="YES"
oder es wird direkt in einen angepassten Kernel mittels der Kernel Konfigurationsdatei eingebaut:
Code:
options TMPFS      # TMPFS filesystem

Nach einem reboot liegt dann das /var/tmp Verzeichnis mittels tmpfs im RAM. Schreibzugriffe darauf nutzen weder Festplatte noch SSD ab,
schneller ist es auch. Eine Win-Win Situation so zu sagen, vorausgesetzt es ist genug RAM vorhanden.
Das tmpfs wächst und schrumpft ganz nach bedarf.


Nun kann man das Firefox "Disk cache device" auf das tmpfs legen.
Nachschauen was im Cache ist, lässt sich beim Firefox 4x so:
Code:
about:cache
In die URL Zeile eingeben und ab dafür.
Dort sieht man auch den Pfad zum Cache Directory.
Nun wird der Pfad geändert:
Code:
about:config
in die URL Zeile eingeben und ab dafür.
Nach:
Code:
browser.cache.disk.parent_directory
suchen, wenn der Eintrag nicht vorhanden ist, dann einfach anlegen mit rechtsklick und dann New ==> String auswählen.
In das erscheinende Dialogfeld wird:
Code:
browser.cache.disk.parent_directory
eingegeben und im darauf folgenden Dialogfeld:
Code:
/var/tmp/firefox
Auf Systemen, die mit mehreren Firefox Usern benutzt werden sollte man noch den passenden Usernamen in den Pfad einsetzen.
Nun liegt der Browser Cache im tmpfs. Vorteil gegenüber dem ganz abschalten vom Disk Browser Cache:
sollte einmal ein Firefox Absturz passieren, überstehen die Daten im tmpfs das,
zumindest so lange der Firefox es nicht schafft FreeBSD komplett umzureißen. :ugly:
 
Zuletzt bearbeitet:
Nur so als Hinweis, die Dateien in /var/tmp sollten nach hier(7) einen Reboot überleben.

Dateien, die wieder verschwinden können gehören in /tmp.
 
er mounted ein tmpfs auf /var/tmp, und das ist dann weg ;)
@Fusselbär:
Sind die Probleme in der Kombination tmpfs und zfs jetzt nicht mehr existent?

Dann ist das affengeil :)
 
Nur so als Hinweis, die Dateien in /var/tmp sollten nach hier(7) einen Reboot überleben.

Dateien, die wieder verschwinden können gehören in /tmp.

Tatsächlich! :eek:
Ich nutze aber schon einige Zeit das tmpfs für /var/tmp.
Habe bislang noch keine Daten vermisst.
/tmp habe ich auch auf einem tmpfs, aber ich dachte mir, falls mal aus irgend einem Grund das tmpfs nicht geladen wird,
dass das nicht auf ein unverschlüsseltes Filesystem schreiben kann. /usr und /var sind schön verschlüsselt.
portupgrade, das ich gerne und häufig benutze, schreibt auch fleißig temporäre Dateien nach /var/tmp,
da ist es mir auch ganz recht, dass es das in das schnellere tmpfs reinschreibt, anstatt auf die SSD.

Edit:
@Metro: was für Probleme mit Kombination tmpfs und zfs? :eek:
 
NUR, wenn ZFS genutzt wird, gabs/gibts? evtl. Schwierigkeiten.

Wenn sich einer den ganzen Thread antun will:
http://lists.freebsd.org/pipermail/freebsd-stable/2011-January/thread.html

Kurzfassung:
Aufgrund der Speicherverwaltung in ZFS kann tmpfs mit 0byte erscheinen, und das kann dann wieder hässliche Konsequenzen insgesamt haben.

Es gab da einige Patches und ähnliches, aber deren Effektivität war *mixed*.
Zudem gibts einen Bugreport auf Opensolaris:
http://bugs.opensolaris.org/bugdatabase/view_bug.do;?bug_id=6804661

Die sind aber schon ein paar Monate alt.
Daher meine Frage: (Damit tmpfs hier wieder aktiviert wird und ff dort cachen kann ;) ):

Sind Patches, die das Problem lösen, mittlerweile implementiert, oder anders: hat jemand problemlos tmpfs mit zfs auf einem *stable System neueren Datums ? Und es läuft problemlos ?

Würde mich freuen ...
 
NUR, wenn ZFS genutzt wird, gabs/gibts? evtl. Schwierigkeiten.

Wenn sich einer den ganzen Thread antun will:
http://lists.freebsd.org/pipermail/freebsd-stable/2011-January/thread.html

Dankeschön für den Link. Ich wusste nichts davon und habe einfach mit tmpfs los gelegt.
Nach dem ich das mit dem notwendigen tmpfs mount Schalter late für die ZFS Automountmagie rausbekommen habe, lief es bislang bei mir ohne besondere Vorkommnisse.
Ich benutze FreeBSD als Desktop System mit KDE 4x. Kann natürlich sein, dass das auf einem Server mit ZFS unter hoher Last anders ausgeht.
Bei mir scheint tmpfs dem System beim compilern eher gut zu tun, es bleibt schön flink als Desktopsystem.
 
Im Grunde ist der Disk Cache auch dazu gedacht auf der Platte zu sein. Alles andere wandert mit der Zeit dann sowieso in den Memory Cache und damit in die RAM. Das Problem ist ja, dass Daten, wenn sie neu geladen werden müssen je nach Anbindung länger brauchen und damit den Zweck des Caches zerstören. Ein Daemon, wie preload wäre vielleicht ganz gut. Das versucht Daten, die bald gebraucht werden könnten schon mal in RAM zu laden. preload ist aber meines Wissens ein reiner Linux- daemon. Kennt da jemand eines für andere Systeme?
 
Zurück
Oben