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计划使用大页内存,则一定要给虚拟机分配大页内存。否则虚拟机的性能将不及预期。

l3asnumanode 设置_NUMA 配置相关推荐

  1. 解决 drupal8 提示“ settings.php ”设置未配置 问题

    解决 drupal8 提示" settings.php 中的 trusted_host_patterns "设置未配置 问题 找到当前网站目录下的sites/default中的se ...

  2. Photon——Setup and Config 设置与配置

    Setup and Config 设置与配置 This chapter explains how files and folders are organized for the Photon Serv ...

  3. 超级终端设置-基本配置(华为)

    超级终端设置-基本配置(华为) 2009-03-12 10:40:11 标签:华为 终端 超级 设置 [推送到技术圈] 1.超级终端,配置视图: 2.华为交换机的命令说明可以变成中文. 3.Tab 是 ...

  4. greenplum mysql jdbc_Kylin设置JDBC配置greenplum数据源

    Kylin设置JDBC配置greenplum数据源 kylin最开始的时候支持hive和kafka作为数据源,从2.3.0版本之后开始支持JDBC作为第第三种数据源.用户可以自定义的数据库或者数据仓库 ...

  5. Kylin设置JDBC配置greenplum数据源

    Kylin设置JDBC配置greenplum数据源 kylin最开始的时候支持hive和kafka作为数据源,从2.3.0版本之后开始支持JDBC作为第第三种数据源.用户可以自定义的数据库或者数据仓库 ...

  6. 解决方案-Visual Studio设置通用配置(包含路径+依赖库)

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 问题说明 使用VS编程时,第一个要做的事情就是配置环境,而在自己日常工作或者学习中,有一些设置或 ...

  7. 计算机的正确配置文件,显示器颜色配置文件在win10电脑中设置正确配置的方法...

    Windows10的电脑中我们需要正确的使用电脑的话,对于显示器还是有一定的要求的,那我们在电脑操作的时候,有小伙伴想要自定义设置显示器颜色配置文件,在相关的设置中不知道是怎么操作的,今天小编就来跟大 ...

  8. 系统配置microsoft服务器,Windows 评估服务设置和配置

    Windows 评估服务设置和配置 05/05/2017 本文内容 本主题中的部分介绍如何设置和配置 Windows 评估服务. 初始化 Windows 评估服务 若要初始化 Windows 评估服务 ...

  9. Linux 各类设置、配置、使用技巧参考,Linux使用集锦

    Linux 各类设置.配置.使用技巧参考,Linux使用集锦 ========== 参考格式 (新增记录时,复制粘贴在下)============= [日期]: <标题> 参考链接ref1 ...

最新文章

  1. 三年、四大顶会,深度推荐系统18篇论文只有7个可以复现
  2. ultraedit中文粘贴出去乱码_Windows系统-怎么搞定乱码
  3. 文巾解题 1744. 你能在你最喜欢的那天吃到你最喜欢的糖果吗?
  4. java中子类与父类中隐含的this引用的分析
  5. 99乘法表的四种位置类型for...in while
  6. C#调用Microsoft.DirectX.DirectSound问题记录及解决
  7. 一次PHP中SQL的Where子句无效问题的解决之旅
  8. Jquery-数组删除元素
  9. 2012年8月20日 我单身了!
  10. ubuntu17安装mysql后数据库乱码_linux安装MySQL数据库,设置编码为utf8
  11. android 优化
  12. D3.js v4版本 按住shift键框选节点demo
  13. C: 与Atom相爱相生
  14. 未来教育计算机19二级视频百度云,未来教育 MS office二级视频讲解
  15. Chirp信号基础知识及matlab实现
  16. 小学必背古诗词80首(带拼音)
  17. 【unity地编】unity制作场景的流程和要点简要
  18. tesserocr的安装
  19. 一文读懂多帧超分辨率来龙去脉2019
  20. DirectShow Utility

热门文章

  1. 【2020年总结】- 时光记录片
  2. 均值滤波计算_图像处理之低通滤波
  3. 在centOS7中安装nginx教程
  4. 电脑ie怎么设置html5,怎么给电脑设置ie浏览器主页
  5. 内核镜像vmlinux和Image的区别
  6. RV1126笔记三十:freetype显示矢量字体
  7. OpenCV之Sobel算子
  8. 一篇知晓-内存竟被”无意“破坏,真相究竟如何?
  9. 警惕:“王者荣耀皮肤”伪装者恶意程序!
  10. 【动态规划】插入乘号问题