Openstack中的虚拟机的cpu绑定

栏目: 服务器 · 发布时间: 6年前

内容简介:重启nova服务,所有实例只能跑在CPUs 4,5,6,7,9,10,11,12,15上。flavor extra specs:hw:cpu_policy=shared|dedicated
# vim /etc/nova/nova.conf

[DEFAULT]
vcpu_pin_set = 4-12,^8,15

重启nova服务,所有实例只能跑在CPUs 4,5,6,7,9,10,11,12,15上。

设置cpu绑定策略

flavor extra specs:

hw:cpu_policy=shared|dedicated

hw:cpu_threads_policy=avoid|separate|isolate|prefer

属性配置说明参见: http://specs.openstack.org/openstack/nova-specs/specs/kilo/implemented/virt-driver-cpu-pinning.html

也就是说这个所谓的绑定,并不是让用户显式的将一个vcpu绑定到某一物理cpu上,openstack不会暴露给用户物理cpu的layout信息;它的使用只是由用户指定绑定选项dedicated,并制定绑定策略,由nova来通过一系列调度具体选择绑定某个vcpu到某一pcpu上。使用方法一般是建两个host-aggregate,一个叫cpu_pinning,一个叫normal,两个aggregate加入不同物理机,有绑定需求的虚机使用cpu_pinning这个aggregate中的物理机建虚机。不会将有绑定需求和没有绑定需求的cpu放在同一个物理机上

也可以通过修改虚拟机XML配置文件制定vcpu绑定到某一个具体的pcpu

手动修改cpu绑定

修改虚拟机XML配置文件:

<vcpu placement='static' cpuset='0'>1</vcpu>
...
    <topology sockets='1' cores='1' threads='1'/>

# virsh vcpupin instance-00008205
VCPU: CPU Affinity
----------------------------------
   0: 0

# virsh vcpuinfo instance-00008205
VCPU:           0
CPU:            0
State:          running
CPU time:       7.7s
CPU Affinity:   y---------------

  <vcpu placement='static' cpuset='0,2,4,10,12'>5</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
    <vcpupin vcpu='1' cpuset='2'/>
    <vcpupin vcpu='2' cpuset='12'/>
    <vcpupin vcpu='3' cpuset='10'/>
    <vcpupin vcpu='4' cpuset='4'/>
  </cputune>

    <topology sockets='1' cores='5' threads='1'/>

# virsh vcpupin instance-00008205
VCPU: CPU Affinity
----------------------------------
   0: 0
   1: 2
   2: 12
   3: 10
   4: 4

# virsh vcpuinfo instance-00008205
VCPU:           0
CPU:            0
State:          running
CPU time:       35.4s
CPU Affinity:   y---------------

VCPU:           1
CPU:            2
State:          running
CPU Affinity:   --y-------------

VCPU:           2
CPU:            12
State:          running
CPU Affinity:   ------------y---

VCPU:           3
CPU:            10
State:          running
CPU Affinity:   ----------y-----

VCPU:           4
CPU:            4
State:          running
CPU Affinity:   ----y-----------

自动修改cpu绑定

Openstack中的虚拟机的cpu绑定

# 通过修改虚拟机xml配置文件,制定vcpu和pcpu的绑定关系
ssh_client = SSHClient(ip, user, password)
cputune_subxml = ""
cpuset = []
for cpu_pin in cpu_pin_info:
    cpu_pin_xml = ("<vcpupin vcpu='%s' cpuset='%s'/>"
                   % (cpu_pin[0], cpu_pin[1]))
    cputune_subxml += cpu_pin_xml
    cpuset.append(str(cpu_pin[1]))
sed_command = ("s|<vcpu placement=.*$|"
               "<vcpu placement='static' cpuset='%s'>%s</vcpu>|g;"
               "s|<topology sockets=.*$|"
               "<topology sockets='1' cores='%s' threads='1'/>|g;"
               % (",".join(cpuset), len(cpu_pin_info),
                  len(cpu_pin_info)))
if cputune_subxml:
    sed_command += ("/<cputune>/,/<\\/cputune>/d;")
    sed_command += ("/<vcpu placement/a\\<cputune>%s<\\/cputune>"
                    % cputune_subxml)
command = ("EDITOR=\"sed -i \\\"%s\\\"\" virsh edit %s"
           % (sed_command, instance_name))
LOG.debug("Set cpu pinnig. command=%s" % command)
ssh_client.exec_command(command)

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数据结构与算法

数据结构与算法

2009-8 / 32.00元

《数据结构与算法》系统地介绍了数据结构的基本概念和基本算法,主要内容包括:绪论,线性表,栈与队列,串,数组、特殊矩阵和广义表,树,图,排序,查找,算法的分析与设计,实验与上机指导。《数据结构与算法》特别注重突出应用性和实践性,实例和习题丰富,并在附录中给出了各章习题的答案。 《数据结构与算法》适合作为应用型本科院校和成人教育计算机专业数据结构课程的教材,也可作为数据结构培训班的教材以及软件从......一起来看看 《数据结构与算法》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具