Linux:taskset

命令行形式

taskset [options] mask command [arg]...

taskset [options] -p [mask] pid

PARAMETER    

mask : cpu亲和性,当没有-c选项时, 其值前无论有没有0x标记都是16进制的,当有-c选项时,其值是十进制的.    

command : 命令或者可执行程序    

arg : command的参数    

pid : 进程ID,可以通过ps/top/pidof等命令获取

OPTIONS    

-a, --all-tasks (旧版本中没有这个选项)

         这个选项涉及到了linux中TID的概念,他会将一个进程中所有的TID都执行一次CPU亲和性设置.

         TID就是Thread ID,他和POSIX中pthread_t表示的线程ID完全不是同一个东西.

         Linux中的POSIX线程库实现的线程其实也是一个进程(LWP),这个TID就是这个线程的真实PID.
       -p, --pid            # 操作已存在的PID,而不是加载一个新的程序
       -c, --cpu-list      # 声明CPU的亲和力使用数字表示而不是用位掩码表示. 例如 0,5,7,9-11.
       -h, --help          # display usage information and exit
       -V, --version     # output version information and exit  USAGE    

      1) 使用指定的CPU亲和性运行一个新程序      

      taskset [-c] mask command [arg]...        

      举例:使用CPU0运行ls命令显示/etc/init.d下的所有内容           

      taskset -c 0 ls -al /etc/init.d/    

      2) 显示已经运行的进程的CPU亲和性      

      taskset -p pid        

      举例:查看init进程(PID=1)的CPU亲和性          

      taskset -p 1    

      3) 改变已经运行进程的CPU亲和力        

      taskset -p[c] mask pid        

            举例:打开2个终端,在第一个终端运行top命令,第二个终端中          

                  首先运行:[~]# ps -eo pid,args,psr | grep top #获取top命令的pid和其所运行的CPU号          

                  其次运行:[~]# taskset -cp 新的CPU号 pid       #更改top命令运行的CPU号          

                 最后运行:[~]# ps -eo pid,args,psr | grep top #查看是否更改成功  

     taskset   -cp 0    11111
                 设置进程号为 11111的进程在 cpu 0上运行。

PERMISSIONS        

一个用户要设定一个进程的CPU亲和性,如果目标进程是该用户的,则可以设置,如果是其他用户的,则会设置失败,提示 Operation not permitted.当然root用户没有任何限制.        

任何用户都可以获取任意一个进程的CPU亲和性.

参考1   参考2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值