Chinaunix首页 | 论坛 | 博客
  • 博客访问: 468404
  • 博文数量: 185
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 681
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-06 21:45
个人简介

为梦而战

文章分类

全部博文(185)

文章存档

2016年(3)

2015年(103)

2014年(79)

我的朋友

分类: LINUX

2015-04-08 16:55:23

    

KVM虚拟机绑定到特定CPU核心的方法 文章转自: http://zk2052041.blog.163.com/blog/static/1377237201282614921473/ 


先介绍taskset,以后还会介绍cgroup中的方法。
taskset绑定进程到某个CPU是很方便的:
#taskset -pc 0,1 1249 
这会绑定1249进程到1号跟1号cpu上。
#cat /proc/1249/status
Cpus_allowed:   3
Cpus_allowed_list:  0-1 
重新绑定下:
#taskset -pc 1 1249
#cat /proc/1249/status
Cpus_allowed:   2
Cpus_allowed_list:  1 
注意这里的Cpu_allowed用的是二进制掩码,3的二进制是11,2的二进制是10。前一个表示可在两个CPU上运行,第二个表示仅在第二个CPU上运行^_^
绑定进程到某几个核心没什么难度了,然后我开始在htop中设定绑定,但是,一个kvm进程生出了4个小线程,关绑定主进程,其他的子线程还是会漂移到别的CPU上,根本无法限制这个虚拟机,手动绑定?太麻烦!用命令来做:
首先把192.168.12.20这个虚拟机的kvm进程绑定到0-3号CPU:
ps -eLf |grep "kvm" |grep "192.168.12.20"|grep -v grep |awk "{print \$4}" |xargs -n 1 taskset -pc 0-3 
首先把其他虚拟机的kvm进程绑定到4-7号CPU:
ps -eLf |grep "kvm" |grep -v "192.168.12.20"|grep -v grep |awk "{print \$4}" |xargs -n 1 taskset -pc 4-7 
然后我们在不同的虚拟机上跑sysbench测试来看CPU占用,效果很不错,各个虚拟机都被关在自己的笼子里面了
阅读(847) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~