Linux の VMware Player 仮想マシンが使用する RAM の量をどのように理解できますか?

Linux の VMware Player 仮想マシンが使用する RAM の量をどのように理解できますか?

私は8GBのRAMを搭載したコンピュータでDebian Jessie 64ビットを実行しています。これはhtop、4 GBのメモリが割り当てられているゲスト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.6 GBの実際の使用可能メモリー:1から2を引いた値は、ホストシステムの新しい仮想マシンまたは他のソフトウェアで実際に使用できると予想されるメモリー量です。

意図的にシステムのメモリが不足しているわけではないので、これが正しいかどうかはわかりませんが、少なくとも良い兆候です。役に立ったことを願っています!

おすすめ記事