Steuern der TMPPS-Speichernutzung

4931
gcb

Gibt es eine Möglichkeit, die von tmpfs verwendete RAM-Kapazität zu begrenzen, ohne die Swap-Menge zu begrenzen?

Die meisten Dokumentationen besagen, dass die sizeOption von tmpfs die Gesamtgröße der tmpfs- Partition einschränkt und später sagt, dass dieser Speicherplatz sowohl vom RAM als auch von SWAP verwendet wird. Und sagt dann, dass der Standardwert die Hälfte Ihres RAM ist, denn wenn er den gesamten RAM verbraucht, werden schwerwiegende OOM-Fehler angezeigt. Es ist verwirrend.

Ich würde es gerne mit 1/4 meines Widders, aber bis zu 3/4 Swap tauschen.

5

1 Antwort auf die Frage

6
grifferz

Soweit mir bekannt ist, können Sie nicht steuern, welche Teile des virtuellen Speichersystems (z. B. RAM oder Swap) für ein TMPFS verwendet werden.

Es ist jedoch nicht wahr, dass das Erstellen großer tmpfs schwerwiegende OOM-Fehler verursacht. Sie können ein TMPFs erstellen, das größer ist als Ihr gesamtes RAM + SWAP, da nichts davon tatsächlich verwendet wird, bis Sie Dateien in das TMPPS-Verzeichnis einfügen.

Wenn Sie keine Dateien in den tmpfs setzen, wird dieser Speicher verwenden, aber nur so viel wie die Dateien, die Sie den tmpfs setzen in. Wenn Sie diese Dateien dann längere Zeit nicht berühren und das System den RAM mehr verwenden muss, als im Zwischenspeicher verbleiben, werden diese Dateien tatsächlich vom Swap statt vom RAM gesichert.

Wenn Ihre Anforderungen an die tmpfs zu einem großen Teil des Arbeitsspeichers werden, wirkt sich dies auf den Puffercache aus (die Daten werden nicht mehr im Arbeitsspeicher zwischengespeichert, da dies für die tmpfs-Dateien erforderlich ist). Wenn die Nachfrage wächst, beginnt der Swap. Wenn Sie keinen Puffercache haben, werden alle Ihre Auslagerungen verwendet, und es werden noch mehr Speicheranforderungen gestellt. Erst dann erhalten Sie OOM-Fehler.

Daher ist es in der Tat sicher, große tmpfs-Werte anzugeben, /tmpsolange Sie auch eine anständige Menge Swap haben. Sie sagen, Sie wären damit einverstanden, wenn Sie 25% Ihres Arbeitsspeichers und 75% Ihres Swap-Speichers verwenden. Angenommen, Sie hätten normalerweise 1 GB RAM und 2 GB Swap. Ich würde tmpfs auf 1G setzen und den Swap etwas erhöhen, sagen wir zu 3G.

Wenn Ihr System unter Speicherdruck gerät, wird als Erstes geschehen, dass selten verwendete Dateien /tmpdurch Swap statt durch RAM gesichert werden. Sie verlieren nicht Ihren gesamten Arbeitsspeicher, indem Sie ein TMPPS so groß wie der Arbeitsspeicher machen.

es sagt "default 1/2 your memory" und hier bedeutet "Speicher" physisches RAM. Es kann aber auch auf die Verwendung von SWAP erweitert werden. Ich möchte nicht mehr als 400 MB für "/ tmp" haben, aber einige seltsame Anwendungen wie UNetBootin bestehen darauf, ISO-Images in / tmp herunterzuladen. Ich habe nichts dagegen, wenn ich diese Dateien herunterlade, um sie auf seltenen Fällen auszutauschen Verwenden Sie es ... aber es würde mir nichts ausmachen, meine TMPs zu verlassen, die ganze Zeit meinen ganzen RAM essen können. und das würde `size = 4g` tun gcb vor 11 Jahren 0
Es tut mir leid, ich habe Ihre Frage falsch verstanden. Ich werde meine Antwort ernsthaft bearbeiten, da sie derzeit meistens schlechter als unbrauchbar ist. Ich weiß leider nicht, wie ich es nützlich machen kann. grifferz vor 11 Jahren 0
Vielen Dank. Ich mache jetzt Experimente (hauptsächlich teste ich die Annahmen, die Sie skizziert haben), werde auf den Debian-Forum-Thread verweisen, wenn ich etwas Schlüssiges habe. gcb vor 11 Jahren 0
Wie haben sich die Tests herausgestellt (gcb?) ck_ vor 11 Jahren 0
@ck_ Ich bekam die Arbeit, um zu arbeiten, wie ich wollte (ich konnte ein ISO mit einem liveUSB herunterladen und dann das Iso auf einem anderen Blockgerät erweitern, ohne dabei meinen gesamten RAM zu verlieren.) Mein Gedächtnis funktioniert nicht sehr gut, aber ich erinnere mich an i andere Flaggen außer "size" in neueren Kerneln gefunden. Ich kann den Thread auch nicht in den Debian-Foren finden ... vielleicht wurde er gelöscht (er begann mit einem verrückten Kerl, der sich beschwert, dass ich die gleiche Frage hier per Post als "Cross-Posting" bezeichnet habe. Vielleicht hat ein Administrator dies nicht bemerkt es gab nützliche Diskussionen nach dem idiotischen Argument). bringt das System, das ich damals benutzt habe, nächste Woche wieder hoch :) gcb vor 10 Jahren 0