2010-09-01 40 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