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.

풍선에 예약된 메모리는 프로세스에서 사용되지 않으므로 ps또는 top의 출력 에 표시되지 않습니다.

관련 정보