我正在使用具有2个内核的Solaris容器(物理机器有32个,每个线程有8个线程)来运行jvm(BEA Jrockit)。
令人惊讶的是:Runtime.getRuntime().availableProcessors()
返回256而不是2,或者说16。也就是说,应用程序(密封产品)相信可用的256个内核,这可能会导致性能问题。
是否可以通过任何方式限制Solaris Container可以看到或传递给JRockit(甚至Sun Hotspot)的核心数量?
答案 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