當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集成服務應該經過測試以識別并解決潛在的問題。