Wann sollte der RAM basierend auf der freien Ausgabe aktualisiert werden?

Wann sollte der RAM basierend auf der freien Ausgabe aktualisiert werden?

Ich habe eine Java-Anwendung, die auf einem Linux-Server mit einem zugewiesenen physischen Speicher (RAM) von 12 GB läuft. Die normale Auslastung über einen Zeitraum würde ich wie unten sehen.

sys> free -h
              total        used        free      shared  buff/cache   available
Mem:            11G        7.8G        1.6G        9.0M        2.2G        3.5G
Swap:            0B          0B          0B

Als ich kürzlich die Last der Anwendung erhöhte, konnte ich sehen, dass der RAM fast voll ausgelastet war und nur noch sehr wenig Speicherplatz verfügbar war, sodass es zu einer gewissen Verlangsamung kommen konnte, die Anwendung aber trotzdem weiterhin einwandfrei funktionierte.

sys> free -h
              total        used        free      shared  buff/cache   available
Mem:            11G         11G        134M         17M        411M        240M
Swap:            0B          0B          0B
sys> free -h
              total        used        free      shared  buff/cache   available
Mem:            11G         11G        145M         25M        373M        204M
Swap:            0B          0B          0B

Ich bezog mich aufhttps://www.linuxatemyram.com/wo der folgende Punkt vorgeschlagen wurde.

Warnsignaleeiner echten Situation mit wenig Arbeitsspeicher, die Sie möglicherweise untersuchen möchten:

  • Der verfügbare Speicher (oder „freier Speicher + Puffer/Cache“) liegt nahe Null
  • Der genutzte Swap steigt oder schwankt.
  • dmesg | grep oom-killer zeigt den OutOfMemory-Killer bei der Arbeit

Aus den oben genannten Punkten erkenne ich kein OOM-Problem auf Anwendungsebene und der Swap wurde auch deaktiviert. Daher vernachlässige ich die beiden Punkte. Ein Punkt, der mir Sorgen bereitet, ist, dass der verfügbare Speicher kleiner als Null ist, wo ich eine Klarstellung benötige

Fragen:

  1. Wenn die Verfügbarkeit nahe 0 liegt, führt dies zu einem Systemabsturz?
  2. Bedeutet das, dass ich den RAM aktualisieren muss, wenn der verfügbare Speicher knapp wird?
  3. Auf welcher Grundlage soll der RAM-Speicher zugewiesen/erhöht werden?
  4. Gibt es offizielle Empfehlungen/Richtlinien, die bei der RAM-Speicherzuweisung befolgt werden müssen?

Antwort1

Ich habe eine Antwort auf meine Frage bekommen

Wenn die Verfügbarkeit nahe 0 liegt, führt dies zu einem Systemabsturz?

Beim Testen in einem meiner Server, wo ich den Speicher fast voll geladen habe, wie unten

sys> free -h
              total        used        free      shared  buff/cache   available
Mem:            11G         11G        135M         25M        187M         45M
Swap:            0B          0B          0B

Ich kann sehen, dass meine Anwendung allein (die mehr Speicher verbraucht hat) durch den Out of Memory-Killer beendet wurde, der in den Kernel-Protokollen aufgeführt ist.

dmesg -e

[355623.918401] [21805] 553000 21805 69 21 2 0 0 rm
[355623.921381] Out of memory: Kill process 11465 (java) score 205 or sacrifice child
[355623.925379] Killed process 11465 (java), UID 553000, total-vm:6372028kB, anon-rss:2485580kB, file-rss:0kB, shmem-rss:0kB

https://www.kernel.org/doc/gorman/html/understand/understand016.html

Der Out Of Memory Killer oder OOM Killer ist ein Prozess, den der Linux-Kernel einsetzt, wenn der Speicher des Systems kritisch knapp wird. Diese Situation tritt auf, weil der Linux-Kernel seinen Prozessen zu viel Speicher zugewiesen hat. ... Das bedeutet, dass die laufenden Prozesse mehr Speicher benötigen, als physisch verfügbar ist.

verwandte Informationen