Nachdem der Kommentar von Anonymous zur Frage Wie wird das / tmp-Verzeichnis aufgeräumt? Ich fand, dass es eine großartige Idee wäre, es auf meinem System zu implementieren, da ich 16 GB RAM habe und nie alles verwendet habe.
Meine temporären Dateien werden nie auf die Festplatte geschrieben. Sie werden auf eine RAM-Disk geschrieben. Ich habe
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
/ etc / fstab eingegeben.
Meine Frage ist:
Kann ich einen Maximalwert für die RAM-Nutzung festlegen /tmp
? Und in diesem Fall, was würde passieren, wenn die maximale Menge überschritten würde, würde es auf die Festplatte schreiben?
Ich habe eine Lösung gelesen, die besagt:
mkdir -p /tmp/ram sudo mount -t tmpfs -o size=512M tmpfs /tmp/ram/
Nach meinem Verständnis wird dies jedoch keine dauerhafte Lösung sein. Wenn es dauerhaft sein soll, muss es der /etc/fstab
Konfigurationsdatei hinzugefügt werden.
Wenn dies die richtige Lösung ist, wie kann ich diesen Mount-Befehl in einen Line-In-Befehl umwandeln /etc/fstab
?
quelle
Antworten:
Du liegst absolut richtig. Der entsprechende fstab-Eintrag würde folgendermaßen aussehen:
Bitte beachten Sie:
Wenn der
tmpfs
Speicher voll ist, verhält es sich wie eine physische Festplatte, wenn der Fehler "Nicht genügend Speicherplatz" ausgegeben wird. Während ein Neustart (und damit das Leeren des Cache) dieses Problem behebt, kann es zu Problemen kommen, wenn ein einzelner Vorgang zunächst mehr Speicherplatz beansprucht als verfügbar isttmpfs
. In diesem Fall beginnt Ihr Computer, vom RAM auf die Festplatte zu wechseln, wodurch Ihr System zum Stillstand kommt, vorausgesetzt, Sie haben zu Beginn eine Swap-Partition.In Anbetracht dessen könnte eine Größe von 512 MB heutzutage viel zu gering sein, da in modernen Maschinen viel mehr RAM vorhanden ist und es viel billiger geworden ist. Da Sie bereits 16 GB RAM haben, sollte die Verwendung des Standardwerts der Hälfte Ihres RAM
tmpfs
für fast alle Szenarien mehr als ausreichen. Um den Standardwert zu verwenden, lassen Sie einfach densize=512M
Eintrag in Ihrer/etc/fstab
Datei weg .Ein weiterer Hinweis:
Sie können auch ganz einfach andere Systemordner in die Ramdisk einbinden, z
/var/cache
/var/games
/var/log/apt
(nurdefaults,noatime
ohnemode=
oder verwendennosuid
)Aber Vorsicht: Es gelten die gleichen Regeln wie oben, da Platzmangel zu großen Problemen führen kann. Stellen Sie sich vor, der Speicherplatz für / var / log / apt wird knapp und Sie können keine Programme mehr installieren!
/var/log
Wenn Sie Ordner auf die Ramdisk laden, werden alle Ihre Protokolldateien beim Neustart gelöscht, sodass Sie Ihr System nicht debuggen können, wenn etwas Unerwartetes passiert. Verwenden Sie diese Einstellungen also auf eigenes Risiko!Anmerkung der Redaktion: Ich habe die Option
/run
intmpfs
mount entfernt , da dieser Ordner und seine Unterordnertmpfs
standardmäßig bereits aktiviert sind.quelle
Auf Systemen mit
systemd
haben Sie die Möglichkeit, anstelle von fstab eine systemd-Unit-Datei zu verwenden, um das Ziel der Verwendungtmpfs
zum Mounten zu erreichentmp
. Auf meinem Ubuntu 16.04-System lief:Die Datei
/usr/share/systemd/tmp.mount
sieht folgendermaßen aus:Mit dem fstab-Ansatz von FuzzyQ übersetzt systemd Ihre fstab-Einträge dynamisch in Mount-Einheiten. Ich denke nicht, dass irgendein Ansatz besser ist.
Um die maximale Grenze für den Arbeitsspeicher wie gewünscht festzulegen, müsste
size=512M
dieOptions
Zeile durch ein Komma getrennt hinzugefügt werden .quelle
systemctl enable tmp.mount
nach cp sonst Systemctl wird mit der Meldung "Failed to start tmp.mount: Unit tmp.mount not found.
"systemctl edit tmp.mount
, wäre distro-neutral. Dadurch werden Ihre Änderungen in die Datei override.conf übernommen, sodass Sie die Standardeinstellung tmp.mount nicht ändern und die Datei override.conf einfach löschen können, um zur Standardkonfiguration zurückzukehren.ln -s
nichtcp
für den ersten Schritt.