很久之前发现一个现象,在生产环境中配置了保留内存reserved_host_memory_mb
以及 没配置 内存超分比ram_allocation_ratio
的情况下,虚拟机使用的内存居然已经快将物理内存耗尽了。
比如物理机内存300G,方便举例忽略掉一些系统占用,当设置了reserved_host_memory_mb
为20G,那么理论上所有虚拟机最大占用内存量为280G,而查看居然已经使用了290G的内存,还是在虚拟机并没有将各自申请的内存全部使用掉的情况下(比如申请一台4G的虚拟机,但物理机操作系统层面并没有分配4G给对应的进程,除非虚拟机内部把内存占满)。
单单就nova而言,如果在集群启动时就指定了保留内存大小和超分比为1的话,是不应该出现上述情形的。除非后期对这2个参数进行过修改,但由于年代久远已经没法追溯,这也就成了一桩悬案。
不过在追踪这个问题的过程中,顺便也学习了下主机热迁移的过程,这里的代码是 N版 。
阅读全文