Openstack J版本 NUMA 特性相關(guān)分析
開源OpenStack J 版本最大的特點是實現(xiàn)了對IPv6網(wǎng)絡(luò)的支持。Openstack在J版本中新增NUMA特性,用戶可以通過將虛擬機只能的CPU和內(nèi)存綁定到物理機的NUMA節(jié)點上來提升虛擬機的性能。
使用方式
NUMA分配方式有兩種方式:
1、用戶指定NUMA節(jié)點的個數(shù),然后由Nova根據(jù)套餐中的規(guī)格平均將CPU和內(nèi)存分布到不同的NUMA節(jié)點上(默認從node 0開始分配,依次遞增)。
2、用戶指定NUMA節(jié)點的個數(shù),以及每個NUMA上分配的虛擬機CPU的編號以及內(nèi)存大小
可以通過設(shè)置套餐和鏡像的屬性來指定虛擬機的NUMA的部署方式,創(chuàng)建虛擬機的時候選擇特定套餐或則鏡像來實現(xiàn)NUMA,具體方法如下:
1、設(shè)置套餐的extra_specs屬性,設(shè)置方式如下
- nova flavor-key flv_name set hw:numa_nodes=2 hw:numa_cpus.0=0 hw:numa_mem.0=512 hw:numa_cpus.1=0 hw:numa_mem.1=512
2、創(chuàng)建鏡像的property屬性,設(shè)置方式如下
- glance image-update --property hw_numa_nodes=2 hw_numa_cpus.0=0 hw_numa_mem.0=512 hw_numa_cpus.1=0 hw_numa_mem.1=512 image_name
各個字段表示的含義如下:
- numa_nodes:該虛擬機包含的NUMA節(jié)點個數(shù)
- numa_cpus.0:虛擬機上NUMA節(jié)點0包含的虛擬機CPU的ID,格式"1-4,^3,6",如果用戶自己指定部署方式,則需要指定虛擬機內(nèi)每個NUMA節(jié)點的CPU部署信息,所有NUMA節(jié)點上的CPU總和需要與套餐中vcpus的總數(shù)一致。
- numa_mem.0:虛擬機上NUMA節(jié)點0包含的內(nèi)存大小,單位M,如果用戶自己指定部署方式,則需要指定虛擬機內(nèi)每個NUMA節(jié)點的內(nèi)存信息,所有NUMA節(jié)點上的內(nèi)存總和需要等于套餐中的memory_mb大小。
自動分配NUMA的約束和限制:
1、不能設(shè)置numa_cpus和numa_mem
2、自動從0節(jié)點開始平均分配
手動指定NUMA的約束和限制:
1、用戶指定的CPU總數(shù)需要與套餐中的CPU個數(shù)一致
2、用戶指定的內(nèi)存總數(shù)需要與套餐中的內(nèi)存總數(shù)一致
3、必須設(shè)置numa_cpus和numa_mem
4、需要從0開始指定各個numa節(jié)點的資源占用
(未完待續(xù))
原文出自:http://blog.csdn.net/canxinghen/article/details/41810241