Ich habe einen relativ kleinen Red Hat Linux-Heimserver (ca. 8 GB RAM). Ich benutze es nur zum Ausführen einiger selbst entwickelter Apps, um verschiedene Dinge im Auge zu behalten. Die einzigen wirklichen Dinge, die auf der Box laufen, sind eine Datenbank und ein Webserver.
Ich habe festgestellt, dass beim Überprüfen von Systemzählern mit Tools wie NMON und TOP der gesamte freie Systemspeicher relativ niedrig ist (in der Größenordnung von einigen hundert MB), während der aktive Speicher für die Datenbank und den Webserver immer noch niedrig ist (nur) verbrauchen kombinierte 3 GB). Selbst wenn alle anderen laufenden Prozesse einbezogen werden, beträgt der insgesamt verbrauchte Speicher weniger als 4 GB.
Warum meldet Red Hat Linux weniger freien Speicher als den Gesamtspeicher abzüglich der Gesamtsumme des verwendeten Speichers laufender Prozesse?
quelle
Linux speichert Dateisystemzugriffe aktiv im Speicher zwischen, um schnellere Datenträgerzugriffszeiten zu ermöglichen. Es gibt keinen Grund zur Sorge.
Wenn Sie free -m auf der Box ausführen, erhalten Sie eine bessere Vorstellung davon, wo Speicher verwendet wird.
Unten ist die Ausgabe aus einer meiner Boxen. Der freie Speicher beträgt 147 MB, wobei fast 4 GB für Dateisystemzugriffsanforderungen zwischengespeichert werden.
quelle
Schließen Sie auch die Felder "gepuffert" und "zwischengespeichert" ein?
quelle
Schauen Sie sich unter Linux Committed_AS in / proc / meminfo an. Dies ist die Speichermenge (real + swap), die der Kernel tatsächlich versprochen hat, um Prozesse auszuführen.
Linux verwendet sehr effizient Speicher, alle Blöcke nicht bis zu einem gewissen Prozess versprochen wird verwendet , vor kurzem / häufig verwendete Dateien zwischenzuspeichern. Daher ist es typisch für Linux, dass 90% des gesamten verfügbaren physischen Speichers nicht lange nach dem Start verwendet werden.
Schauen Sie sich an, was der Kernel sich zur Bereitstellung verpflichtet hat. Und schmutzige (Swap-) Nutzung, dies gibt Ihnen ein besseres Gesamtbild.
Wenn Sie dieses Verhalten anpassen müssen, aktualisieren Sie bitte Ihre Frage :)
Dies ist das Standard-MO für Linux. Einige Distributionen passen die Speicherverwaltung über sysctl an ihre Bedürfnisse an. Was Sie berichten, ist jedoch unter allen ziemlich typisch.
quelle
Welche Art von Kernel führen Sie auf dem System aus? Ein 32-Bit-Kernel meldet nur etwa 3,6 GB Speicher, sofern er nicht mit aktiviertem PAE kompiliert wurde.
Wenn dies eine moderne Version von Redhat Enterprise Linux (oder CentOS) ab Version 3 ist, wird dies vom Standard-32-Bit-Kernel aktiviert.
Wenn Sie die Ausgabe des oben beschriebenen Befehls 'free' veröffentlichen könnten, könnten wir sehen, ob dies das Problem ist oder nicht.
quelle