Solaris容器中的Java availableProcessors()

Solaris容器中的Java availableProcessors(),java,solaris,containers,jrockit,Java,Solaris,Containers,Jrockit,我正在使用一个有2个内核的Solaris容器(物理机器有32个,每个都有8个线程)来运行jvm(BEA Jrockit) 令人惊讶的是:Runtime.getRuntime().availableProcessors()返回256而不是2,比如16。也就是说,应用程序(密封产品)相信有256个内核可用,这可能会导致性能问题 有没有办法限制Solaris容器可以看到的内核数,或者传递给JRockit(甚至Sun Hotspot)的内核数?您可以使用: # poolcfg -c 'create ps

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

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

有没有办法限制Solaris容器可以看到的内核数,或者传递给JRockit(甚至Sun Hotspot)的内核数?

您可以使用:

# 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个内核。阅读更多内容

您可以使用:

# 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个内核。阅读更多