2012-04-23 58 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

相關問題