系统网络运维zhaohang3031.blog.chinaunix.net
zhaohang3031
全部博文(240)
2017年(8)
2014年(4)
2013年(15)
2012年(4)
2011年(14)
2010年(55)
2009年(140)
wb123456
酷小川11
gdmzhqf
heu
Bsolar
浪花小雨
Phyllis6
vipty
grjboy30
分类: LINUX
2011-03-20 20:35:26
在SMP情况下,Linux调度器有负载均衡机制,将一个进程在不同CPU之间进行迁移。因此,一个进程运行在哪个CPU上是不确定的,但有时候为了测试数据方便,却有这样的需求,就是将某个进程绑定到一个CPU上运行。怎么办呢?如果你有源代码,那么很简单,在代码里面加上sched_setaffinity()函数就可以了,但如果没有呢?没关系,我们有秘密武器,那就是taskset命令。该命令最简单的用法是:taskset [mask] [command]mask是CPU掩码,用16进制数表示,从低位起,为1的位表示该CPU上可以运行该进程。command是要运行的命令。如taskset 0x00000033 /usr/bin/aaa表示运行/usr/bin/aaa这个进程,并且绑定在0,1,4,5号CPU上。也许你觉得掩码不直观,没关系,可以使用-c参数,指定CPU的id列表:taskset -c 0,1,4,5 /usr/bin/aaa那么,如果是一个已经在运行的程序呢?也有办法,请出-p参数:task -pc 0,1,4,5 `pidof /usr/bin/aaa`
上一篇:Apache 的工作模式
下一篇:lsof命令查看端口现在运行什么程序及开启文件的进程
登录 注册