Linux-Swap-Speicherplatznutzung nicht freigegeben

Linux-Swap-Speicherplatznutzung nicht freigegeben

Ich habe auf einem meiner Systeme (RHEL6) Warnmeldungen erhalten, dass der Swap-Speicher sehr stark genutzt wird.

nachdem ich mir die VM angesehen habe, kann ich tatsächlich sehen, dass der Swap voll ausgelastet ist, während wir mehr als genug physischen Speicher zur Verfügung haben, zB:

[root@xxxxxxxxxx ~]# free -h
             total       used       free     shared    buffers     cached
Mem:           11G       5.3G       6.3G       2.6M       196M       560M
-/+ buffers/cache:       4.6G       7.0G
Swap:         4.0G       4.0G        21M

meine Frage ist also:

bedeutet das, dass dem System irgendwann der physische Speicher ausgegangen ist und es diese 4 GB zusätzlichen SWAP verwenden „musste“? Der Speicher wurde anschließend freigegeben, aber der Swap bleibt hoch.

und wenn das der Fall ist, gibt es eine Möglichkeit, diesen Swap zu „leeren“?

beim Ausführen einesSpitzeAuf der Maschine, Filterung nach Swap-Nutzung, kann ich sehen, einige Prozesse mit diesem SWAP (die Java an der Spitze insbesondere mit2,7 g)

top - 14:57:06 up 72 days, 19:54,  4 users,  load average: 0.06, 0.02, 0.00
Tasks: 201 total,   1 running, 200 sleeping,   0 stopped,   0 zombie
Cpu(s):  1.2%us,  0.9%sy,  0.0%ni, 97.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  12197860k total,  5598708k used,  6599152k free,   201704k buffers
Swap:  4193276k total,  4170820k used,    22456k free,   573636k cached

    PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  SWAP COMMAND
   9180 pcmc03    20   0 7428m 980m 9208 S  0.3  8.2 797:35.54 2.7g java
   9474 pcmc03    20   0 3409m 999m 9.8m S  0.0  8.4 492:09.57 513m pmrepagent
   9455 pcmc03    20   0 2702m 1.5g 3712 S  0.0 13.0  29:42.06 297m pmrepagent
   9383 pcmc03    20   0 4362m 229m 1568 S  0.3  1.9 159:45.77 213m java
   9494 pcmc03    20   0 2705m 108m  10m S  0.3  0.9 183:49.58  61m pmserver
   7371 root      20   0  231m  69m 2104 S  0.0  0.6 360:27.50  60m prismd.pl
   1730 root      20   0  117m  44m  920 S  0.0  0.4  33:45.09  46m rootmon

Bedeutet das, dass dieser Java-Prozess irgendwann 2,7 GB Swap verwenden musste und die Reservierung beibehalten hat? Und wenn ja, vermute ich, dass dieses System möglicherweise zusätzlichen Speicher benötigt, um ähnliche Situationen in Zukunft zu vermeiden?

Avmstatzeigt kein si/so an.

Vielen Dank

Antwort1

Ja, es sieht so aus, als ob Sie nicht genügend Arbeitsspeicher hätten. Nein, versuchen Sie nicht, ihn aus dem Swap-Speicher freizugeben. Wenn Sie das tun, wird er in den RAM verschoben. Es kann jedoch sinnvoll sein, zu prüfen, welche Prozesse Arbeitsspeicher verschwenden, und zu fragen, ob sie vorhanden sein müssen.

verwandte Informationen