jzlhll 2014-08-07
当Linux虚拟机(VM)运行在Hyper-V环境时,NUMA架构会引发问题吗? 是的。非一致内存访问或NUMA,从根本上来说是将内存隔离到NUMA节点的一种计算机设计方法。
NUMA架构允许处理器访问自己的本地NUMA节点(其实是真正的内存空间),比访问其他NUMA节点内存的速度更快,从而提高了性能表现。几乎所有的现代服务器都采用了NUMA架构来处理处理器与内存的关系。
NUMA支持通常是默认的,但是在一些情况下,Linux VM会遇到NUMA支持所带来的问题。如果Linux VM使用超过七个虚拟处理器或者超过30GB内存,可能会产生性能问题。在2.6.x Linux内核中,这些都是公认的问题。
如果你的系统存在这两种条件之一,将numa=off添加到GRUB boot.cfg文件中,然后重启VM。这样应该能够禁用NUMA,所有的内存将作为一个统一的实体供VM使用。虽然这种方式可能会引起轻微的性能损失,但可以缓解稳定性及可靠性问题。
Hyper-V支持多个版本的Linux VM,但功能支持和稳定难以实现统一——几乎所有的Linux版本是不可能支持第2代VM功能的。采用Linux VM前应该有足够的概念验证测试和性能基准测试,在将Linux VM部署到数据中心生产环境中之前充分验证。同样,任何Linux发行版的更改或潜在的Windows集成服务应该经过测试以识别并解决潜在的问题。