2012-04-23 60 views
3

我有一台运行Solaris OS的服务器。我想将多个处理器绑定到某个进程。我试过以下命令:在Sun Solaris OS上绑定到多个处理器的过程

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

我试图探索所有的手册页和文档,但无法得到线索。

任何人都可以请建议一些相同的指针。

谢谢。

+0

原来的命令'pbind -b 4-7 10708'将在Solaris中11.2工作。 – mob 2016-08-01 20:51:58

回答

3

中的Solaris这样的工具是psrset

您创建一个处理器

psrset -c 4-7 

此设置将返回新处理器的设置ID

created processor set ps_id 

然后你就可以将进程绑定到设置为

psrset -b ps_id pid 
+0

嗨德米特里,非常感谢。处理器集是用'psrset'创建的。但是,我需要相同的root权限。否则,会抛出以下错误:/ usr/sbin/psrset:无法创建处理器集:不是所有者。无论如何,从非root用户创建处理器集? – 2012-04-23 10:14:48

+0

您需要在/ etc/user_attr中包含sys_res_config,并且如果配置了区域,则必须登录到全局区域。 – 2012-04-23 11:06:05