Мне очень трудно что-то понять, и мне было интересно, есть ли у кого-нибудь опыт в этом и может ли помочь.
У меня есть два KVM VMHosts, один под управлением qemu 2.4.1, а другой под управлением 1.1.0. На каждой у меня есть виртуальная машина с выделенной ей 80 ГБ памяти под управлением CentOS 6. Оба VMHosts также работают под управлением CentOS 6.
В окне 1.1.0, когда я запускаю внутри виртуальной машины процесс, который занимает все 80 ГБ памяти, Qemu выделяет ему 80 ГБ и сохраняет их. Если вы посмотрите наверх, вы увидите, что размер RES для этого процесса qemu составляет 80 ГБ. Команда free подтверждает, что память не свободна.
В поле 2.4.1, когда я делаю то же самое, он выделяет 80 ГБ для виртуальной машины, столбец RES подтверждает это. Но затем, как только я завершаю процесс внутри виртуальной машины, занимая всю память, Qemu, кажется, возвращает память системе. Столбец RES все время остается на уровне 80 ГБ, но я постепенно вижу, что моя свободная память увеличивается с помощью команды free, пока она почти не вернется снова.
Понятия не имею, почему это так, и меня это беспокоит. Я ожидал, что поведение vmhost 1.1.0 Qemu было именно таким. Вот почему люди используют раздувание памяти (на самом деле это то, с чем я экспериментировал). Это почти похоже на то, что поле 2.4.1 автоматически расширяется, но мой столбец RES никогда не уменьшается, поэтому я не уверен, как это возможно. Я не уверен, было ли изменение qemu, о котором я не знаю, или что-то в этом роде ...
Приветствуется любое понимание. Спасибо!