GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Cent OS:Wie schalte ich die Speicherüberbelegung aus oder reduziere sie und ist dies sicher?

Lösung 1:

Memory Overcommit kann durch vm.overcommit_memory=2 deaktiviert werden

0 ist der Standardmodus, in dem der Kernel die Zuweisung heuristisch bestimmt, indem er den freien Speicher im Vergleich zur gestellten Zuweisungsanforderung berechnet. Und wenn Sie es auf 1 setzen, wird der Zaubermodus aktiviert, in dem der Kernel immer ankündigt, dass er genügend freien Speicher für jede Zuweisung hat. Die Einstellung auf 2 bedeutet, dass Prozesse nur bis zu einer konfigurierbaren Menge (overcommit_ratio ) von RAM und erhält Zuordnungsfehler oder OOM-Meldungen, wenn diese Menge überschritten wird.

Ist es sicher, nein. Ich habe keinen richtigen Anwendungsfall gesehen, bei dem das Deaktivieren der Speicherüberbelegung tatsächlich geholfen hat, es sei denn, Sie sind sich der Arbeitslast und Hardwarekapazität zu 100% sicher. Falls Sie interessiert sind, installieren Sie kernel-docs Paket und gehen Sie zu /Documentation/sysctl/vm.txt um mehr zu lesen, oder lesen Sie es online.

Wenn Sie vm.overcommit_memory=2 einstellen dann wird es bis zu dem in vm.overcommit_ratio konfigurierten Prozentsatz des physischen RAM überschreiben (Standard ist 50 %).

echo 0/1/2 > /proc/sys/vm/overcommit_memory 

Das überlebt einen Neustart nicht. Fügen Sie dies zur Persistenz in /etc/sysctl.conf ein Datei:

vm.overcommit_memory=X

und führen Sie sysctl -p aus . Kein Neustart erforderlich.

Lösung 2:

Völlig unqualifizierte Aussage:Das Deaktivieren von Memory Overcommit ist definitiv "sicherer" als es zu aktivieren.

$customer hat es auf ein paar hundert Webservern installiert und es hat sehr bei Stabilitätsproblemen geholfen. Es gibt sogar einen Nagios-Check, der wirklich laut Feuer ruft, wenn es jemals NICHT deaktiviert wird.

Auf der anderen Seite halten es die Leute vielleicht nicht für "sicher", ihre Prozesse aus dem Arbeitsspeicher zu holen, wenn sie nur ein wenig RAM überschreiben möchten und das nie wirklich nutzen würden (dh SAP wäre ein sehr gutes Beispiel)

Sie sind also wieder dabei, zu sehen, ob es die Dinge für Sie verbessert. Da Sie sich bereits damit befassen, um verwandte Probleme zu beseitigen, denke ich, dass es Ihnen helfen könnte.

(Ich weiß, dass ich eine Ablehnung durch eine mürrische Person riskiere)

Lösung 3:

Ich stimme zu, dass das Deaktivieren von Overcommit unter bestimmten Umständen sicherer ist als das Aktivieren. Wenn der Server nur wenige große Speicherjobs ausführt (wie in meinem Fall Schaltungssimulationen), ist es viel sicherer, der Anwendung die Speicheranforderung im Voraus zu verweigern, anstatt auf ein OOM-Ereignis zu warten (das sicher bald folgt). Sehr oft sehen wir Server Probleme haben, nachdem der OOM-Killer seine Arbeit erledigt hat.


Linux
  1. So überprüfen Sie die gesamte RAM-Größe und Speichernutzung in Linux

  2. Wie schalte ich Snap in Ubuntu aus?

  3. So deaktivieren Sie die Bildschirmsperre in Ubuntu

  4. Wie schalte ich den Bildschirm mit einer Verknüpfung in Linux aus?

  5. Wie kann die ClamAV-Speichernutzung reduziert werden?

So installieren und verwenden Sie das Forensik-Tool für Volatility-Speicher

So erhöhen Sie Speicher und CPU auf Vagrant Machine

So finden Sie die Top 10 der laufenden Prozesse nach Speicher- und CPU-Auslastung

So deaktivieren Sie das Durchsuchen von Verzeichnissen auf Apache und Nginx

Wie RAID-Arrays Ihre Daten sicher und zugänglich halten

Wie untersucht man ein Speicherleck mit Apache und PHP?