Linux의 VMware Player 가상 머신이 사용하는 RAM의 양을 어떻게 알 수 있나요?

Linux의 VMware Player 가상 머신이 사용하는 RAM의 양을 어떻게 알 수 있나요?

저는 8GB RAM이 장착된 컴퓨터에서 Debian Jessie 64비트를 실행하고 있습니다. 이는 htop4GB의 메모리가 할당된 게스트 VM을 시작하기 전의 메모리 사용량(상당히 큰 Firefox 세션 사용)입니다.

VMware 없이 1297MB를 사용했습니다.

htop이는 게스트 VM이 시작된 후 및 일부 작업을 수행한 후 기반으로 한 메모리 사용량입니다 .

VMware를 사용하여 1326MB를 사용했습니다.

내 시스템에서 가상 머신이 소비하는 RAM의 양을 정확하게 보고하는 Windows와 달리 Linux는 그러한 정보를 보고하지 않습니다. 그래서 나는 VM을 수용할 만큼 메모리가 충분하다고 생각하여 너무 많은 VM을 시작하는 상황에 자주 직면하지만, 그렇지 않고 시스템이 갑자기 전체 GB의 RAM을 밀어야 하는 3분의 기간을 견뎌야 합니다.

가상 머신이 사용하는 실제 RAM은 어디에서 확인할 수 있나요?

답변1

가장 읽기 쉬운 스크립트는 아닙니다. 원래는 나 자신을 위해 작성했지만 나중에 다음 질문을 발견했습니다(다른 사람들에게 도움이 될 수 있음).

vmfolder="$HOME/vmware"
vmwarebinary='/usr/lib/vmware/bin/vmware-vmx'

function add {
    awk '{tot += $1} END{print tot}'
}

vmusage="$(ps wauwx | grep " $vmwarebinary " | grep vmx\$ | awk '{print (int($6/1024/1024*100)/100) " GiB " $3 " avg%CPU for " $(NF)}' | sed 's@'"$vmfolder"'/\([^ ]*\)/.*@\1@')"
tot="$(echo "$vmusage" | add)"
avail="$(free -mw | grep '^Mem:' | awk '{print (int($8/1024*100)/100)}')"
realavail="$(echo "$avail-$tot" | bc)"

echo "$vmusage" | sort -nr
echo "Total                     $tot GiB"
echo "Claimed available memory: $avail GiB"
echo "Truly available memory:    $realavail GiB"

경로 는 vmfolder가상 머신의 위치로 구성되어야 합니다.

free다른 버전이나 복제본이 모두 동일한 열이나 구문을 출력하는지 모르겠습니다 . 이는 Debian 11에서 테스트되었으며 다른 Debian 기반 운영 체제에서도 작동할 수 있습니다. 테스트에 사용된 VMware는 VMware Workstation 16입니다.

전문가 팁: 실행하면 watch -d -n 10 thescript.bash변경 사항이 강조 표시됩니다. 다음과 같습니다.

위 watch 명령의 출력 스크린샷

어디:

  • 총 17.9GB: 모든 가상 머신에서 사용하는 총 메모리
  • 27.5GB가 사용 가능한 메모리라고 주장함: free바이너리에서 말하는 내용은 사용 가능합니다(거짓말!)
  • 9.6GB의 실제 사용 가능한 메모리: 1에서 2를 뺀 값은 호스트 시스템의 새 가상 머신이나 기타 소프트웨어에 실제로 사용할 수 있을 것으로 예상되는 메모리 양입니다.

의도적으로 시스템의 메모리가 부족해진 것은 아니므로 이것이 맞는지는 확실하지 않지만 적어도 좋은 징조입니다. 도움이 되었기를 바랍니다!

관련 정보