В настоящее время я использую гипервизор bhyve в своей системе FreeNAS, но, имея только 16 ГБ ОЗУ, использование виртуальных машин более или менее перегружено системой.
У меня сейчас только одна виртуальная машина, на которой запущен Debian.
Это его конфигурация:
Getting debianguest iohyve properties...
bargs -A_-H_-P
boot 1
con nmdm1
cpu 2
description Wed Feb 8 18:16:58 CET 2017
install no
loader grub-bhyve
name debianguest
os debian
persist 1
ram 3G
size 50G
tap tap0
template NO
vnc NO
vnc_h 600
vnc_ip 127.0.0.1
vnc_tablet NO
vnc_w 800
vnc_wait NO
Важным битом является ram=3G
где он определяет объем виртуальной памяти, доступной для виртуальной машины.
Теперь возникает моя проблема: эта виртуальная машина использует намного больше оперативной памяти на хосте, чем я выделил для нее.
Вывод из ps aux -O %mem
:
root 28769 9.1 32.2 7519108 5357236 - S 8:28PM 18:21.80 bhyve: ioh-debia
Выход из htop
:
PID USER PRI NI VIRT RES S CPU% MEM% TIME+ Command
28769 root 20 0 7342M 5233M S 7.0 32.2 18:30.40 bhyve: ioh-debianguest
Вывод из free -h
:
total used free shared buff/cache available
Mem: 2.9G 1.1G 90M 71M 1.8G 1.6G
В настоящее время используется 5,2 ГБ оперативной памяти, когда настроено только 3.
Он также имеет около 90 МБ свободного места, 1,6 ГБ для приложений и 0 КБ подкачки, что приводит меня к предположению, что гипервизор (bhyve) или ядро каким-то образом теряют память.
РЕДАКТИРОВАТЬ:
Хотя я понимаю, что выделение большего объема памяти для повышения производительности - это хорошая вещь (и я ожидаю этого), заставляя сам процесс подкачки или, что еще хуже, убить OOM Killer, я задаюсь вопросом, насколько агрессивна эта цель для производительности.
Есть ли способ узнать, почему он использует больше оперативной памяти на хосте, чем выделено, и есть ли способ уменьшить объем оперативной памяти, используемой на хосте?