У меня есть физическая машина с 24 ГБ ОЗУ, на которой размещено несколько виртуальных машин с использованием libvirt-qemu.
При создании виртуальных машин я назначаю много памяти и не использую подкачку, чтобы общий объем выделенной памяти мог быть больше, чем физическая память на хосте, а свопинг управлялся глобально на уровне хоста. Я нашел этот совет в Интернете, и он мне понятен.
Недавно я обнаружил, что у нас проблемы с памятью, и перед добавлением физической памяти в машину я запустил htop
в хозяине и в гостях, и я кое-что не совсем понимаю.
Гости
Гость 1
Гость 2
Гость 3
... (игнорируя нескольких гостей помельче)
Хост
Список процессов на хосте (я скопировал только гостя 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 ГБ были вытеснены для обмена.