openstack cpu pinning

摘要:
为了减少CPU竞争并提高CPU缓存命中率,您可以将来宾的vcpupin固定到主机的物理CPU上。pin的策略是:hw:cpu_threads_Policy=avoidguest不会被调度到具有超线程的主机。

为了减少CPU竞争,提高CPU cache命中率,可以把guest的vcpu pin到host的物理CPU上。

在openstack中,可以添加以下到flavor extra specs:

hw:cpu_policy=shared|dedicated
hw:cpu_threads_policy=avoid|separate|isolate|prefer

如果hw:cpu_policy=shared,则和现有的默认vcpu放置一样,有NUMA来定义vcpu的放置,即没有显示的vcpu pin。

如果hw:cpu_policy=dedicated则显示的vcpu pin。pin的policy有:

  • hw:cpu_threads_policy = avoid
    guest不会调度到有超线程的host上。
    openstack cpu pinning第1张
  • hw:cpu_threads_policy = separate
    每个vcpu到放置到不同的core。
    openstack cpu pinning第2张
  • hw:cpu_threads_policy = isolate
    每个vcpu到放置到不同的core上,并且独占这个core。其他vcpu不能再放置到该core上。
    openstack cpu pinning第3张
  • hw:cpu_threads_policy = prefer
    guest的vcpu放置到同一core上,让vcpu成为siblings thread。 
    openstack cpu pinning第4张

image metadata properties也可以用来设置放置policy:

  • hw_cpu_threads_policy=avoid|separate|isolate|prefer

为了使用vcpu pin,必须使用host aggregates,用来区分 hw:cpu_policy=shared/dedicated。

但同一host agg可以同时支持dedicated RAM (via huge pages) and dedicated CPUs (via pinning).

https://specs.openstack.org/openstack/nova-specs/specs/juno/approved/virt-driver-cpu-pinning.html

https://github.com/openstack/nova-specs/blob/master/specs/juno/implemented/virt-driver-numa-placement.rst

免责声明:文章转载自《openstack cpu pinning》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇爱回收Java实习面试(offer到手含面试经验及答案)构建伪Update服务器工具isr-evilgrade下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

使用VSCode创建Asp.Net Core

前言 .Net Core 2.0已经发布几个月了,惭愧!身为一个开发人员现在才开始接触,有人说有VS这一宇宙第一IDE在,为啥还要用VSCode,为啥?因为我们是程序猿啊!我们是攻城狮啊!我们爱折腾啊,在非windows下体验编译net的那种兴奋刺激的感觉,就像刚接触编程时第一个HelloWorld输出在电脑屏幕时的那种感觉,爽!看看我大net也能跑在li...

gdb调试

前期准备 一般来说GDB主要调试的是C/C++的程序。在gdb调试之前,必须要把调试信息加到可执行文件中。使用编译 器(cc/gcc/g++)的 -g 参数可以做到这一点。如: gcc -g hello.c -o hello g++ -g hello.cpp -o hello 如果没有-g,将看不见程序的函数名、变量名,所代替的全是运行时的内存地址。...

.NET Core项目部署时自定义端口号

不管是在Linux系统还是Windows系统部署.NET Core项目,都会有自定义项目端口号的需求 一、默认的端口号 环境:Linux系统/Windows系统。正常情况下,.NET Core项目发布后的默认端口是5000,发布如下: 二、使用UserUrls自定义端口号 环境:Linux系统/Windows系统,.NET Core项目中UserUrls...

ASP.NET Core开发-使用Nancy框架

ASP.NET Core开发-使用Nancy框架  Nancy简介 Nancy是一个轻量级的独立的框架,下面是官网的一些介绍: Nancy 是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono 平台,框架的目标是保持尽可能多的方式,并提供一个super-duper-happy-path所有交互。 Nancy 设计用于处理...

.NET Core容器化开发系列(一)——Docker里面跑个.NET Core

前言     博客园中已经有很多如何在Docker里面运行ASP.NET Core的介绍了。本篇主要介绍一些细节,帮助初学的朋友更加深入地理解如何在Docker中运行ASP.NET Core。 安装Docker     Docker现支持在主流Linux、Windows和macOS上安装,官方的安装文档请参考docker docs。鉴于国内的网络环境,...

openstack 5大组件之间的关系和基本架构思维导图

  云计算是一种按使用量付费的模式,这种模式提供可用的/便捷的/按需的网络访问,进入可配置的计算资源共享池(资源包括网络/服务器/存储/应用软件和服务),这些资源能够被快速提供,只需投入很少的管理工作或与服务供应商进行很少的交互。   OpenStack作为一种资源管理平台,主要常用的有以下几大组件:   (1)Keystone:认证管理服务     提供...