web-dev-qa-db-ja.com

qemuプロセスのメモリ使用量がゲストのメモリ使用量よりも多い

24 GBの物理マシンがありますRAM libvirt-qemuを使用していくつかのVMをホストしています。

VMを作成するときは、大量のメモリを割り当て、スワップは行わないので、割り当てられたメモリの合計がホスト上の物理メモリよりも大きくなり、スワップはホストレベルでグローバルに管理されます。私はインターネットでこのアドバイスを見つけましたが、それは私には理にかなっています。

最近、メモリの問題があることがわかりました。マシンに物理メモリを追加する前に、ホストとゲストでhtopを起動しましたが、よくわからないことがあります。

ゲスト

  • ゲスト1

    • 合計:16G
    • 使用:2.5G
    • 使用済み+キャッシュ:13G
  • ゲスト2

    • 合計:16G
    • 使用:1.8G
    • 使用済み+キャッシュ:3.6G
  • ゲスト3

    • 合計:10G
    • 使用:.5G
    • 使用済み+キャッシュ:1G
  • ...(少数の小さなゲストは無視)

ホスト

  • 合計:23.5G
  • 中古:23.2G
  • 使用済み+キャッシュ:23.5G
  • スワップ合計:18.6G
  • 中古:12.5G

ホスト上のプロセスのリスト(番号順にゲスト1、2、3のみをコピーしました):

  PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
 2212 libvirt-q  20   0 21.3G  9.6G  3476 S 118. 41.0    1867h qemu-system-x86_64 -enable-kvm -name guest=guest_1 ...
 2391 libvirt-q  20   0 21.2G 2455M  1020 S  4.0 10.2 56h49:10 qemu-system-x86_64 -enable-kvm -name guest=guest_2 ...
40694 libvirt-q  20   0 14.7G 7545M  1668 S  1.3 31.4 94h35:35 qemu-system-x86_64 -enable-kvm -name guest=guest_3 ...
...

私が理解しようとしているのは、ゲスト1が現在2.5Gを使用しているが、対応するqemuプロセスは9.6G物理RAMホスト。

問題があれば、すべてのマシンがDebianです。ホストはdebian Stratch、ゲストはStretchとJessieです。

1
Jérôme

私が理解しようとしているのは、Guest 1が現在2.5Gを使用しているのに、対応するqemuプロセスが9.6Gの物理RAM= Hostを使用しているためです。

上位に投稿したデータによると、ゲスト1はホストによって割り当てられたメモリの13Gを使用しています(プロセスの割り当てとキャッシュの割り当ての間で分割)。あなたのホストは9.6 Gの常駐のみを示しているので、その13 GBの一部は、私が交換するために押し出されています。

3
DanielB