Von Zeit zu Zeit kommt "mein" Server zum Stillstand, weil ihm sowohl der Arbeitsspeicher als auch der Auslagerungsspeicher ausgehen. (es reagiert immer wieder auf ping, aber nicht mehr als das, nicht einmal ssh).
Ich habe erfahren, dass Linux eine Überbelegung des Arbeitsspeichers vornimmt, was meines Erachtens dasselbe ist wie bei Banken mit Geld: Es wird mehr Arbeitsspeicher verarbeitet, als tatsächlich verfügbar ist, vorausgesetzt, dass die meisten Prozesse nicht den gesamten von ihnen angeforderten Arbeitsspeicher verwenden Zumindest nicht alle gleichzeitig.
Angenommen, dies ist tatsächlich der Grund, warum mein System gelegentlich aufhängt. Lassen Sie uns hier nicht diskutieren, ob dies der Fall ist oder nicht (siehe Was kann dazu führen, dass ALLE Dienste auf einem Server ausfallen und dennoch auf Ping reagieren? Und wie Sie dies herausfinden ). .
So,
Wie deaktiviere oder reduziere ich die Speicherüberbelegung in CentOS drastisch? Ich habe gelesen, dass es zwei Einstellungen gibt, die vm.overcommit_memory (Werte 0, 1 oder 2) und vm.overcommit_ratiom heißen, aber ich habe keine Ahnung, wo ich sie finden und ändern muss (hoffentlich einige Konfigurationsdateien). Welche Werte sollte ich versuchen? und ob ich den Server neu starten muss, damit die Änderungen wirksam werden.
und ist es sicher? Welche Nebenwirkungen kann ich erwarten? Wenn ich nach overcommit_memory google, finde ich beängstigende Dinge wie Leute, die sagen, dass ihr Server nicht mehr booten kann ...
Da der plötzliche Anstieg der Speichernutzung auf mysql zurückzuführen ist, weil Abfragen von PHP vorgenommen werden, die wiederum aufgerufen werden, während http-Anfragen bearbeitet werden, würde ich davon ausgehen, dass nur ein PHP-Skript nicht vollständig ausgeführt werden kann und daher von Zeit zu Zeit etwa 500 Antworten vorliegen Der Server ist zu beschäftigt, was ein Risiko darstellt, das ich eingehen kann (sicherlich besser, wenn der gesamte Server nicht mehr erreichbar ist und einen harten Neustart durchführen muss).
Oder kann es wirklich dazu führen, dass mein Server nicht neu gestartet werden kann, wenn ich die falschen Einstellungen wähle?