使用virsh vcpuinfp命令查看虚拟机VCPU和物理CPU的对应关系

[root@svn ~]# virsh vcpuinfo 16
VCPU: 0
CPU: 3
状态: running
CPU 时间: 12581.6s
CPU关系: yyyy #可以看到VCPU0被调度到物理机CPU3上,目前是使用状态,使用时间是12581.6s。

使用emulatorpin命令可以查看虚拟机可以使用哪些物理逻辑CPU

virsh  #进入虚拟化的交互式终端
virsh # emulatorpin
模拟器: CPU 亲和性
----------------------------------
*: - 可以看到0-3都可以使用,意味着可以强制将VCPU调度到任何物理CPU核上

在线绑定虚拟机的CPU

可以强制虚拟机只能在部分物理CPU之间调度。例如,使编号为16的虚拟机CPU在26-31之间调度

virsh emulatorpin 16 26-31 --live

通过以下命令查看绑定是否生效
virsh emulatorpin 21
emulator: CPU Affinity
-----------------------------------------------------------
*: 26-31

强制VCPU和物理机CPU-对一绑定

强制VCPU和物理机CPU-对一地绑定,例如强制VCPU 0和物理机CPU 28绑定,强制VCPU 1和物理机CPU 29绑定,强制VCPU 2和物理机CPU 30绑定,强制VCPU 3和物理机CPU 31绑定,命令如下:

virsh vcpupin   

virsh vcpupin   

virsh vcpuin   

virsh vcpuin   

CPU绑定技术的原理:CPU绑定实际上是Libvirt通过CGROUP来实现的,通过CGROUP直接去绑定KVM虚拟机进程也可以。CGROUP不仅可以做CPU绑定,还可以限制虚拟机磁盘、网络资源控制。

CPU绑定技术适用的应用场景:

  • 系统的CPU压力比较大
  • 多核CPU压力不平衡,可以通过cpu pinning技术人工进行调配

补充:

NUMA在虚拟机话应用之外的提示:

某些应用,比如数据库,为了保证性能,需要尽量适用更多的内存,如果使用系统默认的NUMA自动平衡策略,有可能一个CPU的内存消耗光,另外一个CPU还有大量的内存可以使用,但是系统却去调用swap来使用,造成性能严重降低。使用这些内存消耗型的应用时,可以考虑直接将系统的NUMA自动平衡策略关闭。

未完断续。。。。

CPU绑定操作的更多相关文章

  1. OpenStack Nova 高性能虚拟机之 CPU 绑定

    目录 文章目录 目录 前文列表 KVM KVM 的功能列表 KVM 工具集 KVM 虚拟机的本质是什么 vCPU 的调度与性能问题 Nova 支持的 vCPU 绑定 vcpu\_pin\_set 配置 ...

  2. vue.js初级入门之最基础的双向绑定操作

    首先在页面引入vue.js以及其他需要用到的或者可能要用到的插件(这里我多引用了bootstrap和jquery) 引用的时候需要注意文件的路径,准备工作这样基本就完成了,下面正式开始入门. vue. ...

  3. Dojo初探之4:dojo的event(鼠标/键盘)事件绑定操作(基于dojo1.11.2版本)

    前言: 上一章详解了dojo的dom/query操作,本章基于dom/query基础上进行事件绑定操作 dojo的事件 dojo的事件绑定操作分为鼠标和键盘两种进行详解 1.鼠标事件 我们沿用上一章中 ...

  4. 实现对DataGird控件的绑定操作

    //实现对DataGird控件的绑定操作 function InitGrid(queryData) { $('#grid').datagrid({ //定位到Table标签,Table标签的ID是gr ...

  5. 在树莓派下对多个串口转USB设备进行设备名称绑定操作

    在开发过程中,需要用一个树莓派链接多个串口转USB设备(GPS模块,数传模块等),在树莓派linux系统环境下,USB串口设备的命名规则是 /dev/ttyUSB0 ,/dev/ttyUSB1,/de ...

  6. KVM虚拟机CPU绑定性能调优(宿主机上操作)

    获取kvm的pid ps -ef | grep kvm 通过pid找到vcpu在那个物理cpu上,没有绑定固定物理cpu时,执行下面命令可以看出vcpu在不同的物理cpu上切换重复执行 ps -eLo ...

  7. openStack cpu绑定

    来自:http://fishcried.com/2015-01-09/cpu_bindings/ 前一篇理解cpu topology对CPU Topology进行了学习总结,这里想总结下OpenSta ...

  8. NGINX源代码剖析 之 CPU绑定(CPU亲和性)

    作者:邹祁峰 邮箱:Qifeng.zou.job@gmail.com 博客:http://blog.csdn.net/qifengzou 日期:2014.06.12 18:44 转载请注明来自&quo ...

  9. Getting Physical With Memory.CPU如何操作内存

    原文标题:Getting Physical With Memory 原文地址:http://duartes.org/gustavo/blog/ [注:本人水平有限,只好挑一些国外高手的精彩文章翻译一下 ...

随机推荐

  1. 一个Activity掌握Android5.0新控件 (转)

    原文地址:http://blog.csdn.net/lavor_zl/article/details/51279386 谷歌在推出Android5.0的同时推出了一些新控件,Android5.0中最常 ...

  2. 如何在移动端app中应用字体图标icon fonts (转)

    原文: http://www.cnblogs.com/willian/p/4166757.html?utm_source=tuicool&utm_medium=referral How to ...

  3. JAVA1种C++3种继承方式

    JAVA中只有一种public继承

  4. 求割点 poj 1523

    给你一些双向边 求有多少个割点 并输出去掉点这个点 去掉后有几个联通分量 Tarjan #include<stdio.h> #include<algorithm> #inclu ...

  5. wow.js使用方法

    近日,在做项目中,需要做到滚动条滑到某个位置时,才能显示动画,网上查询到有个wow.js可以达到要求,现在把使用方法做如下总结: wow.js演示地址 wow.js的github地址 使用方法真是超简 ...

  6. 事件冒泡是什么如何用jquery阻止事件冒泡

    (1)什么是事件起泡 首先你要明白一点,当一个事件发生的时候,该事件总是有一个事件源,即引发这个事件的对象,一个事件不能凭空产生,这就是事件的发生. 当事件发生后,这个事件就要开始传播.为什么要传播呢 ...

  7. 终端可以连接MySQL但是navicat还是报错:Can't connect to MySQL server on '127.0.0.1'(61)

    1)选择第二个: 2)勾选 Use socket file就行了

  8. Matlab中fsolve传递系数变量

    比如AX= b,求解x,但是要找不同b下的x,100个b. fsolve(‘fun,[X0,b])这样是不行的,因为这样的话b也当成了变量,也会变. 两种方法 1.全局变量 global b;多个的话 ...

  9. poj3335 半平面交

    题意:给出一多边形.判断多边形是否存在一点,使得多边形边界上的所有点都能看见该点. sol:在纸上随手画画就可以找出规律:按逆时针顺序连接所有点.然后找出这些line的半平面交. 题中给出的点已经按顺 ...

  10. LuaLaTeX \documemtclass{standalone} 编译错误

    最近在学习用LaTeX中的TikZ包画图 (graph), 必须要用LuaLaTeX编译. 然而却出现了奇怪的错误. \documentclass{standalone} \usepackage{ti ...