
KVM + QEMU と複数のゲストを実行しているホスト マシンがあります。すべてのゲストは Ubuntu 16.04 (仮想マシン インストール) を実行しています。
現在の問題は、ホスト メモリの消費量 (htop 経由) が 90% を超えていることです。GuestVM1 には 1 GB のメモリが使用可能です。ログインすると、約 50 MB しか使用されていないことがわかります。sysctl -w vm.drop_caches=3
キャッシュを低く保つために、1 時間ごとに実行しています。
ただし、ホストにログインして、GuestVM1 がホスト上で使用しているメモリの量を確認すると、htop は を返しますVIRT 1480 MB RES 809 MB SHR 1020 MB
。
ゲストがすべてのメモリを使用しておらず、必要なときにメモリを動的に割り当てる場合に、KVM に (ホスト上の) メモリ使用量を減らすように指示する方法はありますか?
答え1
キャッシュを破棄する必要はありません。Linux は、許可されている限りデータをキャッシュします。メモリの負荷が高くなりすぎると、不要になったページを破棄し、ダーティ ページを書き戻して予備のメモリを解放します。Linux の哲学は、後で再度アクセスする必要がある場合に備えてデータをキャッシュしておくことであり、メモリが必要な場合は、プロセスに必要なメモリのためにこのデータを破棄します。