Solaris容器中的Java availableProcessors()

时间:2010-09-01 00:12:30

标签: java solaris containers jrockit

我正在使用具有2个内核的Solaris容器(物理机器有32个,每个线程有8个线程)来运行jvm(BEA Jrockit)。

令人惊讶的是:Runtime.getRuntime().availableProcessors()返回256而不是2,或者说16。也就是说,应用程序(密封产品)相信可用的256个内核,这可能会导致性能问题。

是否可以通过任何方式限制Solaris Container可以看到或传递给JRockit(甚至Sun Hotspot)的核心数量?

1 个答案:

答案 0 :(得分: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