Über den Speichercache von Linux

Über den Speichercache von Linux

Ich führe ein Python-Skript aus, um einige Statistiken zu erstellen, und der tatsächlich verwendete Speicher ist gering, etwa 10 %. Und kein anderer Prozess verbraucht mehr Speicher. Wenn ich es jedoch verwende, free -mwird angezeigt, dass fast 95 % des Speichers verwendet wurden. Der Punkt ist, dass mein Skript viele Dateien lesen sollte. Daher frage ich mich, ob es einen Mechanismus des Linux-Speichercaches gibt, der das Problem verursacht hat. echo 1 >> /proc/sys/vm/drop_cachesFunktioniert, scheint aber manuell zu sein. Wie kann ich den Speicherverbrauch senken, ohne dass dies negative Auswirkungen auf das Lesen von Dateien hat?

Antwort1

Der Linux-Kernel speichert Dateien aus Effizienzgründen automatisch im Cache. Das ist keine schlechte Sache. Während der Ausführung free -msehen Sie rechts die im Cache verwendete Speichermenge. Wenn eine Anwendung den Speicher benötigt, gibt der Kernel einen Teil des Caches frei. Sie sollten nicht versuchen, dies selbst zu verwalten.

Antwort2

Ich glaube nicht, dass Sie hier ein wirkliches Problem haben.

Warum ist es für Sie wichtig, wie viel Speicher insgesamt verwendet wird? Schadet es?

Linux versucht, Ihren Speicher so effizient wie möglich zu nutzen. Wenn Sie viel freien Speicher haben und viele Dateien lesen, wird der freie Speicher zum Zwischenspeichern dieser Dateien verwendet. Wenn Sie viel aktiven Speicher haben, wird viel weniger Speicher zum Zwischenspeichern verwendet. So soll es funktionieren. Wenn Sie den Speicher überhaupt nicht verwenden möchten, entfernen Sie die Chips aus Ihrem Computer.

Es gibt einige seltene Fälle, in denen viel Cachen schlecht sein kann. Vielleicht findet der Leseschub immer direkt vor einem Speicherzuweisungsschub statt. Vielleicht bedeutet etwas in Ihrem speziellen Fall, dass es keinen möglichen Vorteil gibt und Sie die letzten 0,1 % Leistungseinbußen herausquetschen müssen. Vielleicht verwenden Sie ein eingebettetes System, das RAM mit begrenzter Lebensdauer verwendet. Wenn Sie einen solchen Fall haben, sagen Sie uns, was es ist.

verwandte Informationen