Binding 将进程绑定到Sun Solaris OS上的多个处理器

Binding 将进程绑定到Sun Solaris OS上的多个处理器,binding,process,solaris,processor,Binding,Process,Solaris,Processor,我有一台运行Solaris操作系统的服务器。我想将处理器的数量绑定到某个进程。我尝试了以下命令: 1) ps:获取进程id bash-3.00$ ps -ef | grep java bileng 10708 10695 3 12:20:59 pts/1 0:26 /opt/billengine/jdk1.6.0_29/bin/sparcv9/java -Dprogram.name=run.sh -Xloggc:./jb 2) psrinfo:获取处理器id bash-3.00

我有一台运行Solaris操作系统的服务器。我想将处理器的数量绑定到某个进程。我尝试了以下命令:

1) ps:获取进程id

bash-3.00$ ps -ef | grep java
bileng 10708 10695   3 12:20:59 pts/1       0:26 /opt/billengine/jdk1.6.0_29/bin/sparcv9/java -Dprogram.name=run.sh -Xloggc:./jb
2) psrinfo:获取处理器id

bash-3.00$ /usr/sbin/psrinfo
0       on-line   since 11/04/2013 16:22:17
1       on-line   since 11/04/2013 16:22:18
2       on-line   since 11/04/2013 16:22:18
3       on-line   since 11/04/2013 16:22:18
4       on-line   since 11/04/2013 16:22:18
5       on-line   since 11/04/2013 16:22:18
6       on-line   since 11/04/2013 16:22:18
7       on-line   since 11/04/2013 16:22:18
3) pbind:将进程绑定到处理器

我想将处理器编号4到7绑定到进程id 10708。因此,我尝试了以下命令:

bash-3.00$ /usr/sbin/pbind -b 4-7 10708       
/usr/sbin/pbind: invalid processor ID 4-7
4) 但是,当我尝试将单个处理器id绑定到进程id时,它会起作用:

bash-3.00$ /usr/sbin/pbind -b 4 10708
process id 10708: was not bound, now 4
5) 但我的要求是将多个处理器绑定到一个进程id

我试图浏览所有的手册页和文档,但找不到线索

有谁能给我提些建议吗


谢谢。

在Solaris中执行此操作的工具是
psrset

使用创建处理器集

 psrset -c 4-7
 psrset -b ps_id pid
这将返回新处理器集的ID

 created processor set ps_id
然后,可以将进程绑定到具有

 psrset -c 4-7
 psrset -b ps_id pid

在Solaris 11.2中,您可以通过processor_affinity(2)系统调用来实现这一点。描述这一点的博客文章可以在这里找到:当然还有一个手册页:


你好,德米特里,非常感谢。处理器集是使用
psrset
创建的。但是,我需要相同的根权限。否则它将抛出以下
错误:/usr/sbin/psrset:无法创建处理器集:非所有者
。是否仍然可以从非根用户创建处理器集?您需要在/etc/user\u attr中配置sys\u res\u config,如果配置了区域,则必须登录到全局区域。原始命令
pbind-b 4-7 10708
将在Solaris 11.2中工作。