以前一直用bindprocessor -q来查看系统中有几个可用的CPU,今天man了一下bindprocessor
发现这个命令是用来绑定进程于CPU的,这样说把,如果你想使用第3个CPU执行该进程,就可以运行以下的命令
bindprocessor pid 2 2为使用bindprocessor -q输出的序号
则在进程(pid)的生命周期中,它将使用第3个cpu来执行
可以在进程的执行期间使用sar -P 命令查看 sar -P 0,1,2 2 10将查看0 1 2 这3个cpu在20秒钟内的执行情况,有兴趣的可以玩玩,dd一个1g的空文件,然后绑定pid到process n去,就可以查看到了
要注意到的是,man里写的很清楚,bind的是thread,想了解的可以去man下
另外,现在P5的机器有了smt技术,叫什么同步多线程,一个物理CPU上可以同时跑两个线程,但是要求是power5的硬件和5.3的系统,比如1个4c的p550,使用prtconf 可以看到4个CPU,如果smt未启用的话,则bindprocessor -q只能看到0 1 2 3,如果启用smt的话,prtconf还是4个,但bindprocessor -q 就是 0 1 2 3 4 5 6 7了,8个cpu core了
可以使用smtctl命令查看是否启用了smt功能,还是那句话,具体怎么用,man一man