正常一个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杀掉。