私のシステムの 1 つ (RHEL6) で、スワップ領域の使用率が高いという警告を受け取りました。
VM を確認すると、物理メモリが十分にあるにもかかわらず、スワップが完全に使用されていることがわかります。例:
[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
私の質問は次のとおりです:
これは、ある時点でシステムの物理メモリが不足し、これらの 4 GB の追加 SWAP を「使用しなければならなかった」ことを意味します。その後メモリは解放されましたが、スワップは高いままです。
もしそうなら、そのスワップを「空にする」方法はあるのでしょうか?
実行中の場合上マシン上でスワップ使用量でフィルタリングすると、そのスワップを使用しているいくつかのプロセスがわかります(特に上部のJavaは2.7g)
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
これは、この Java プロセスが、ある時点で 2.7g のスワップを使用する必要があり、予約を保持していたことを意味しますか? もしそうなら、このシステムは、将来同様の状況を回避するために追加のメモリを必要とする可能性があると思いますか?
1つのvmstatsi/so は表示されません。
どうもありがとうございます
答え1
はい、メモリが不足しているようです。スワップから解放しようとしないでください。そうすると RAM に入ります。ただし、どのプロセスがメモリを浪費しているかを確認し、それらのプロセスが存在する必要があるかどうかを尋ねる価値はあるかもしれません。