正常一个kvm虚拟机的管理内存大约为1.2GB左右,正常不会超过2GB
标准虚机机可用内存计算方法:
宿主机物理内存 - 系统保留内存4GB - N个虚拟机物理内存 - (N个虚拟机 * 2GB虚拟机管理内存)
可能存在的内存浪费:
系统正常内存使用量为:2.5GB,空闲1.5GB
虚拟机管理内存通常为:1.2GB,空闲0.8GB
虚拟机内部业务未使用的物理内存:大小不定 (通常不能复用)
避免内存浪费方法:
增加虚拟内存,使用swap分区。
swap分区大小如何设置?
正常大小应该设置为可能浪费的内存大小加上2GB保底内存。假设宿主机需要同时启动8个虚拟机,则swap分区大小应设置为:
系统可能浪费的1.5GB 虚拟机管理可能的内存浪费0.8GB * 8个虚机 = 8GB
在轻负载下环境下,使用增加swap分区避免内存浪费的方法还是比较靠谱的,此时虚机机可用内存计算方法为:
宿主机虚拟内存大小 - 系统保留内存4GB - N个虚拟机物理内存 - (N个虚拟机 * 2GB虚拟机管理内存)
原则上,虚拟机不能使用交换分区,否则会导致性能急剧下降。
使用swap分区方案可用于负载较低的虚机环境,可充分利用物理内存,避免浪费。
如果宿主机上虚拟机负载普遍较重,应按照标准可用内存计算方法进行分配,以物理内存大小为依据。
不管在轻负载还是在重负载环境下,都应该分配一定的swap分区,防止因内存不足导致虚拟机被oom杀掉。