Javaプロセスは、RAM全体よりも多くのRAMを消費します。

Javaプロセスは、RAM全体よりも多くのRAMを消費します。

Javaプロセスを含むDockerコンテナを含むサーバーがあります。プロセスの1つが100%(117%)以上のメモリを消費し、これはtopコマンドに表示されます。

$ top
...
MiB Mem : 515396.0 total, 149379.3 free, 135893.8 used, 230123.0 buff/cache
Mib Swap: 32768.0 total,   32768.0 free,      0.0 used. 171544.5 avail Mem
...
    PID USER PR NI    VIRT    RES    SHR S %CPU  %MEM    TIME+ COMMAND
3103558 root 20  0 9449.8g 590.5g 588.0g S 28.1 117.3 21786:42 java

ps auxコマンドを使用してクロスチェックしましたが、RSSとVSSの値ははるかに高くなります。

$ ps aux | grep 3103558
root 3103558 26.3 99.9 9908790360 619223404 ? Sl  Sep29 21788:59 java ... -Xms196G ...

free -g は少ないメモリを使用します。

$ free -g
          total     used    free    shared  buff/cache  available
Mem:        503      132     145       200         224        167
Swap:        31        0      31 

jconsoleを確認すると、java_optsで指定された最大ヒープ値(10,926,161,920バイト)でメモリが制御されます。

一部のプロセスがメモリを100%以上消費する理由を誰か教えてもらえますか?パニックにならなければならないのか、それともこれが予想される状況ですか?

ベストアンサー1

おすすめ記事