我目前正在我的 FreeNAS 系统上使用 bhyve 虚拟机管理程序,但由于只有 16G 的 RAM,运行虚拟机对于系统来说或多或少有点困难。
我只有一VM 现在正在运行 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
它指定了虚拟机可用的虚拟 RAM 数量。
现在我的问题来了:这个虚拟机正在使用方式更多主机上的 RAM 比我为其分配的要多。
输出自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
当仅配置 3 时,它当前使用 5.2GB 的 RAM。
它还具有大约 90M 的可用空间,1.6GB 可用于应用程序和0千在交换中,这让我假设虚拟机管理程序(bhyve)或内核以某种方式泄漏了内存。
编辑:
虽然我明白分配更多内存来提高性能是一件好事(我也期待这一点),但强制进程本身被交换,甚至更糟的是,被 OOM Killer 杀死,让我质疑这种性能目标有多么激进。
有什么方法可以找出为什么它在主机上使用的 RAM 比分配的多,以及有没有办法减少主机上使用的 RAM 量?