Gutes Dateisystem für / tmp?

31

Ich denke an / tmp auf einer eigenen Partition ... was wäre ein gutes Dateisystem, um es zu formatieren?

Der Grund, den ich frage, ist, dass die Daten, die in / tmp gespeichert werden, nicht permanent sind, sodass ich kein Journaling, keinen ausgefallenen Index oder etwas anderes benötige.

Nathan Osman
quelle

Antworten:

27

Ich finde manchmal, dass es die beste Lösung ist, /tmpauf ram ( tmpfs) umzusteigen (besonders auf meinen Setups, die viel plattenintensives E / A-Material verwenden - MySQL usw.), wenn Sie genug RAM haben, um es zu füttern.

Marco Ceppi
quelle
2
Ich habe 2 GB RAM, das ist also wahrscheinlich keine Option.
Nathan Osman
2
Eigentlich sollte das genügend RAM sein. / tmp in der Regel nicht verwendet wird, dass viel mit dem normalen Nutzung des Systems (was immer das ist).
joschi
3
tmpfs verwendet Swap, wenn dies erforderlich ist. Ihr Swap-Bereich kann also die doppelte Aufgabe von / tmp erfüllen, ohne dass zusätzlicher Speicherplatz zugewiesen werden muss.
Gbroiles
@ George Wie groß würdest du deine / tmp-Partition machen?
Marco Ceppi
1
@George, das ist groß genug für eine Partition /tmp- auf meinem Desktop verwende ich bestenfalls 12 MB, aber auf meinen Servern /tmpkann es verrückt werden, wenn Kunden dumme Dinge in MySQL und Skriptsprachen tun, die dazu führen /tmp, dass sie viel größer werden. Das Geniale an tmpfs ist, dass es nicht nur 64 MB RAM wegnimmt, sondern nur eine harte Decke. tmpfs wird skaliert, wenn mehr Speicherplatz benötigt wird. Sie verbrauchen also nur in tmpfs, was zu diesem Zeitpunkt benötigt wird.
Marco Ceppi
25

Hier gibt es mehrere gute Möglichkeiten:

  1. tmpfs : ist ein Dateisystem, das seine Dateien im RAM speichert. Dies bedeutet nicht, dass das Dateisystem Ihren gesamten Arbeitsspeicher beansprucht. Stattdessen wird nur die Menge benötigt, die wirklich benötigt wird. Normalerweise werden nur einige MB benötigt. Wenn Sie es verwenden, fügen Sie eine Zeile wie: none /tmp tmpfs size=64M,mode=1777 0 0zu Ihrer hinzu /etc/fstab. Sie können den sizeWert auf einen von Ihnen gewünschten Wert ändern . Wenn Sie irgendwann denken , dass es zu wenig ist, können Sie mountdie Größe erhöhen: mount -t tmpfs tmpfs /tmp -o size=128M,mode=1777,remount. Die Größe wird an Ort und Stelle erhöht, ohne dass vorhandene Dateien gelöscht werden.
  2. ext2 / 3 : Du hast in deiner Frage gesagt, dass du keine ausgefallenen Features brauchst. Ich würde jedoch raten, ein Tagebuch zu verwenden. Denn wenn Sie ext2 verwenden und eine ziemlich große haben /tmp, dauert es einige Zeit, diese zu überprüfen. ext3 bootet in vielen Fällen schneller. Daher würde ich die Verwendung von Journalling vorschlagen.
  3. ext4 , reiserfs etc .: Einige Software-Anwendungen /tmpspeichern große Mengen kleiner Dateien. In einigen Fällen gibt es also keine freien Blöcke mehr und das Dateisystem ist voll. ext4 und auch reiserfs speichern Dateien auf andere Weise. Es könnte also eine gute Wahl sein, diese für Ihre Zwecke zu verwenden /tmp.

Wenn Ihr Computer längere Zeit ausgeführt wird, sollten Sie nicht verwendete Dateien in löschen /tmp. tmpreaperist eine Lösung, die das für Sie erledigt.

Jedoch würde meine erste Wahl verwenden tmpfs.

qbi
quelle
Gilt die erste Option mit / etc / fstab auch für systemd?
Smile4ever
1
@ Smile4ever Yes-- /etc/fstabist Teil von util-linux, daher ist es auf jedem Linux-System verfügbar, unabhängig davon, welches Init-System verwendet wird.
villapx
7

Wenn Sie nicht möchten, dass es möglicherweise RAM frisst, würde ich es einfach als ext2 ausführen . Kein Grund, den kleinen Performance-Hit des Journalings für ein Dateisystem zu essen, dessen Daten Sie über Neustarts hinweg nicht interessieren (sollten).

Eigentlich sollten Sie ext4 verwenden und das Journal deaktivieren, es sollte schneller sein als ext2. Formatieren Sie es ext4 und stecken Sie es fstabmit der Mount-Option ein data=writeback.

Nicholas Knight
quelle
6

Die Verwendung tmpfssollte für Ihre Anforderungen in Ordnung sein, vorausgesetzt, Sie haben ausreichend RAM installiert .

/tmpDavon abgesehen ... etwas, das in Bezug auf die Verwendung einer Ramdisk für (dies stammt aus einem älteren Post an anderer Stelle ) berücksichtigt werden sollte :

  • Sollte sich / tmp auf einem realen Festplattenbereich befinden oder darf es grundsätzlich im SWAP-Bereich (oder tmpfs) implementiert werden?

Wenn es stark genutzt wird, ist dies eine Versuchung - "Wir werden / tmp auf eine RAM-Disk legen, es wird den Zugriff beschleunigen und wenn das System neu gestartet / heruntergefahren wird, gibt es nichts zu bereinigen". Wenn Sie jedoch darüber nachdenken, temporären Speicher als RAM-Datenträger zu implementieren, der ausgetauscht wird, würde ich die Auswirkungen der Auslagerungsspeicherbelegung Ihres Systems durch andere Programme berücksichtigen. Wenn Swap als eine Form von "Notüberlauf" auftritt, wenn sich das System in einer schwierigen Situation befindet und diese benötigt, ist das Letzte, was Sie benötigen, Swap - Speicherplatz zu belegen, der von einem außer Kontrolle geratenen Prozess gefüllt wird / tmp, Speicherplatz verbraucht und Druck auf das System ausübt VM-Subsystem zum Auslagern auf die Festplatte. Zwischen Swap-Aktivität,seek()

Avery Payne
quelle
5

Die Verwendung von ext4 mit bestimmten Mount-Optionen sollte in Ordnung sein. Verwenden Sie die folgenden Mount-Optionen:

barrier=0 : Significantly improves file write operations in some scenarios
noatime : Don't update file last access time, you don't need this on /tmp files and it should help with write operations performance.
João Pinto
quelle
füge auch nodiratime hinzu
Weboide
Noatime enthält Nodiratime
Zvolkov
3

Ich bin zufrieden mit ext4. Sie können mit einigen Einhängeoptionen spielen, wenn Sie es optimieren möchten, oder tmpfs verwenden, wenn Sie viel RAM haben.

Michał Šrajer
quelle
2

Als Antwort auf die Frage, warum Sie eine separate / tmp-Partition wünschen, gibt es sicher viele Gründe, wie einige bereits ausgeführt haben, aber einer, den ich heute als besonders relevant empfinde, ist, dass Sie / auf einer SSD ausführen, Sie möchten die Schreibvorgänge auf dieses Laufwerk minimieren. Daher ist das Verschieben von / tmp eine gute Idee, da sich in diesem Bereich des Dateisystems häufig viele Änderungen ergeben.

Matt Smith
quelle
0

Ich denke, tmpfs könnte eine schlechte Option sein, da normalerweise / tmp von der Welt beschreibbar ist, sodass jeder es füllen kann. Wenn es voll ist, wird alles an Speicherplatz wegfallen und der Server wird langsamer

Christian DeKonink
quelle
Ich denke, eine vernünftige maximale Größe für tmpfs festzulegen und Swap Space zu haben, wird damit umgehen.
Olathe