freeコマンドが実際に消費されたメモリと異なると言うのはなぜですか?

freeコマンドが実際に消費されたメモリと異なると言うのはなぜですか?

126Gメモリを搭載したLinux VM rhel 7.5サーバー上

以下のように、利用可能なすべてのメモリを消費する奇妙なメモリ動作があります。

free -g
              total        used        free      shared  buff/cache   available
Mem:            126         122           0           1           2       1        
Swap:           10           10           0

メモリ消費量を正確に計算するbashスクリプトがあり、これが結果です。

  5.2 MiB +   2.3 MiB =   7.6 MiB       sshd (4)
 10.2 MiB + 159.0 KiB =  10.4 MiB       polkitd
 12.6 MiB + 315.0 KiB =  12.9 MiB       gsd-color
 16.6 MiB +   5.0 KiB =  16.6 MiB       node_exporter
 11.3 MiB +  27.1 MiB =  38.4 MiB       systemd-journald
 40.4 MiB +  15.9 MiB =  56.3 MiB       rsyslogd
 73.3 MiB +   1.4 MiB =  74.7 MiB       python2.7 (3)
226.4 MiB +   2.7 MiB = 229.2 MiB       gnome-shell
  1.4 GiB +   1.1 MiB =   1.4 GiB       df.pll
 15.7 GiB +   9.2 MiB =  15.7 GiB       java (9)
 22.1 GiB +   2.0 MiB =  22.1 GiB       KLP-server

---------------------------------
                         39.6 GiB

コマンドを使用すると、topメモリが実際に約100%消費されていることがわかります。40G

それでは、availableでのみどのように見ることができfree -gますか1G

私たちが見ることができるものは次のとおりです。

vmware-toolbox-cmd stat balloon
81632 MB 

答え1

vmware-toolbox-cmd stat balloon
81632 MB 

答えは次のとおりです。システムは約40GiBのメモリを使用しており、VMwareバルーンメカニズムは80GiBのメモリを予約しているため、122GiBが「使用済み」と報告されていますfree

バルーンに予約されているメモリはプロセスで使用されないため、またはpstop出力には表示されません。

関連情報