Назад | Перейти на главную страницу

qemu использует память процесса больше, чем гостевая память

У меня есть физическая машина с 24 ГБ ОЗУ, на которой размещено несколько виртуальных машин с использованием libvirt-qemu.

При создании виртуальных машин я назначаю много памяти и не использую подкачку, чтобы общий объем выделенной памяти мог быть больше, чем физическая память на хосте, а свопинг управлялся глобально на уровне хоста. Я нашел этот совет в Интернете, и он мне понятен.

Недавно я обнаружил, что у нас проблемы с памятью, и перед добавлением физической памяти в машину я запустил htop в хозяине и в гостях, и я кое-что не совсем понимаю.

Гости

Хост

Список процессов на хосте (я скопировал только гостя 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,5 г но соответствующие процессы qemu используют 9,6 г физическая оперативная память на хосте.

Все машины Debian, если это важно. Ведущий - Дебиан Стрэтч, а гости - Стретч и Джесси.

Я пытаюсь понять, почему Гость 1 в настоящее время использует 2,5 ГБ, но соответствующие процессы qemu используют 9,6 ГБ физической памяти на хосте.

Согласно данным, которые вы разместили выше, ваш гость 1 использует 13 ГБ памяти, выделенной ему хостом (разделено между выделениями для процессов и выделениями для кеша). Ваш хост показывает только резидент 9,6 G, поэтому я полагаю, что некоторые из этих 13 ГБ были вытеснены для обмена.