2010-09-01 71 views
1

我正在使用具有2個內核的Solaris容器(物理機器有32個,每個包含8個線程)來運行jvm(BEA Jrockit)。Solaris容器中的Java availableProcessors()

令人驚訝的是:Runtime.getRuntime().availableProcessors()返回的是256而不是2或16,也就是說,應用程序(密封產品)相信256個內核可用,可能會導致性能問題。

是否有限制Solaris Container可以看到或傳遞給JRockit(甚至是Sun Hotspot)的核心數的方法?

回答

1

您可以使用:

# poolcfg -c 'create pset zone_pset (uint pset.min=2; uint pset.max=15)' 
# poolcfg -c 'create pool zone_pool' 
# poolcfg -c 'associate pool zone_pool (pset zone_pset)' 
# poolcfg -c 'modify pool zone_pool (string pool.scheduler="FSS")' 
# pooladm -c 

到指定的容器芯2和15之間。閱讀全文here