OpenStack中的CPU绑核、NUMA亲和、大页内存

azeqjz OpenStack: OpenStack中的CPU绑核、NUMA亲和、大页内存

Flavor中定义的CPU绑核、NUMA亲和、大页内存

CPU绑核策略

对Libvirt驱动而言,虚拟机的vCPU可以绑定到主机的物理CPU上(pCPU)。这些配置可以改善虚拟机实例的精确度与性能。

注意:
应该摔死主机组来隔离绑核虚拟机与非绑核虚拟机,因为非绑核虚拟机不会顾及绑核虚拟机的资源需求。

$ openstack flavor set FLAVOR-NAME \
    --property hw:cpu_policy=CPU-POLICY \
    --property hw:cpu_thread_policy=CPU-THREAD-POLICY

有效的CPU-POLICY值为:

  • shared: (默认值) 虚拟机的vCPU允许在主机pCPU上自由浮动,尽管可能受到NUMA策略的限制。
  • dedicated: 虚拟机vCPU被严格绑定到一组主机pCPU上。当CPU绑定生效时,虚拟机CPU拓扑会和绑定的CPU拓扑策略一致。这意味着超分率为1.0。例如,如果2个vCPU的虚拟机绑定到有两个线程的物理CPU核,那么虚拟机的CPU拓扑为一个socket、一个核、两线程。

有效的CPU-THREAD-POLICY值为:

  • prefer: (默认值) 主机可能是也可能不是SMT(同时多线程simultaneous multithreading-based)架构,如果应用SMT架构时,优选兄弟线程。
  • isolate: 应用在主机可能不是SMT架构,或者必须模拟非SMT架构。当主机不是SMT架构时,每个vCPU相当于一个核。如果主机应用SMT架构,也就是说一个物理和有多个兄弟线程,每个vCPU也相当于一个物理核。其他虚拟机的vCPU不会放在同一个核上。选中的核上只有一个兄弟线程可用。
  • require: 主机必要使用SMT架构。每个vCPU被分配在兄弟线程上。如果主机没有SMT架构,那就不使用此主机。如果主机使用SMT架构,却没有足够空闲线程的核,那么nova调度失败。

注意:
hw:cpu_thread_policy只在hw:cpu_policy设置为dedicated时有效。

NUMA拓扑

Libvirt驱动程序可以为虚拟机vCPU定义放置的NUMA节点,或者定义虚拟机从哪个NUMA节点分配vCPU与内存。对于内存与vCPU超过计算节点NUMA容量的flavor,NUMA拓扑定义允许主机更好地利用NUMA并提高GuestOS的性能。

$ openstack flavor set FLAVOR-NAME \
    --property hw:numa_nodes=FLAVOR-NODES \
    --property hw:numa_cpus.N=FLAVOR-CORES \
    --property hw:numa_mem.N=FLAVOR-MEMORY
  • FLAVOR-NODES: (整数) 限制虚拟机vCPU线程运行的可选NUMA节点数量。如果不指定,则vCPU线程可以运行在任意可用的NUMA节点上。

  • N: (整数) 应用CPU或内存配置的虚拟机NUMA节点,值的范围从0到FLAVOR-NODES - 1。比如为0,则运行在NUMA节点0;为1,则运行在NUMA节点1.

  • FLAVOR-CORES: (英文逗号分隔的整数) 映射到虚拟机NUMA节点N上的虚拟机vCPU列表。如果不指定,vCPU在可用的NUMA节点之间平均分配。

  • FLAVOR-MEMORY: (整数,单位MB) 映射到虚拟机NUMA节点N上的虚拟机内存大小。如果不指定,则内存平均分配到可用NUMA节点。

例子:Flavor定义虚拟机有4个vCPU,4096MB内存,以下表示虚拟机的vCPU与内存可以分布在2个NUMA节点。虚拟机的0号与1号vCPU在NUMA 0上,2号与3号vCPU在NUMA 1上。虚拟机的2048MB内存在NUMA 0上,另外的2048MB内存分配到在NUMA 1上。

$ openstack flavor set aze-FLAVOR \
    --property hw:numa_nodes=2 \
    --property hw:numa_cpus.0=0,1 \ 
    --property hw:numa_cpus.1=2,3 \
    --property hw:numa_mem.0=2048 \
    --property hw:numa_mem.1=2048 \

注意:
hw:numa_cpus.N与hw:numa_mem.N只在设置hw:numa_nodes时有效。另外,只有当实例的NUMA节点具有非对称的CPU和RAM分配(对于某些NFV工作负载很重要)时才需要。

注意:
N是虚拟机NUMA节点的索引,并不一定对应主机NUMA节点。例如,在两个NUMA节点的平台,根据hw:numa_mem.0,调度会选择虚拟机NUMA节点0,但是却是在主机NUMA节点1上,反之亦然。类似的,FLAVOR-CORES也是虚拟机vCPU的编号,并不对应与主机CPU。因此,这个特性不能用来约束虚拟机所处的主机CPU与NUMA节点。

警告:
如果hw:numa_cpus.N或hw:numa_mem.N的值比可用CPU或内存大,则会引发错误。

大页内存分配

$ openstack flavor set FLAVOR-NAME \
    --property hw:mem_page_size=PAGE_SIZE

有效的PAGE_SIZE值为:

  • small: (默认值) 使用最小的内存页面,例如x86平台的4KB。
  • large: 虚拟机RAM使用大页内存。例如x86平台的2MB或1G。
  • any: 取决于计算驱动程序。此情况下,Libvirt驱动可能会尝试寻找内存大页,但最终回落到小页。其他的驱动则可能选择可用策略。

注意:
大页内存可以分配给虚拟机内存,而不考虑Guest OS是否使用。如果Guest OS不使用大页内存,则它值会识别小页。反过来,如果Guest OS计划使用大页内存,则一定要给虚拟机分配大页内存。否则虚拟机的性能将不及预期。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,569评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,499评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,271评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,087评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,474评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,670评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,911评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,636评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,397评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,607评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,093评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,418评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,074评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,092评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,865评论 0 196
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,726评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,627评论 2 270

推荐阅读更多精彩内容