我在 Hyper-V 上安装了 Centos 7 x86 的虚拟机(主机 RAM:64 GB),它具有以下内存参数:
- 物理 RAM:4096 MB
- 动态内存: 是的
- 最小 RAM:512 MB
- 最大 RAM:1048576 MB
- 内存缓冲区:20%
我还在 grub.cfg 中指定了 5 GB 作为内存限制:linux16 *其他参数* mem=5G
但系统使用一段时间后,总内存开始超出此限制:
-bash-4.2# free
total used free shared buff/cache available
Mem: 5304420 3420732 1105012 15664 778676 1802444
Swap: 2113532 260916 1852616
-bash-4.2# dmidecode memory | awk '/^Memory Device$/{for (i = 0; i < 5; ++i) { getline }; if ($2 != "No") print $2 " " $3}'
3968 MB
128 MB
据我了解,这个限制不适用于动态内存......
如何限制动态内存,使总内存不超过5G?
笔记:我应该在虚拟机中严格限制它,而不是在 Hyper-V 设置中