蜀山湖水...分享 http://blog.sciencenet.cn/u/luoman 正在成长的萝卜...

博文

SMP中进程与CPU邦定

已有 3084 次阅读 2009-11-2 08:52 |个人分类:IT|系统分类:科研笔记

在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

https://blog.sciencenet.cn/blog-310658-266870.html

上一篇:好大一场雾
下一篇:断网
收藏 IP: .*| 热度|

0

发表评论 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-6 10:31

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部