我在Intel(R)Xeon(R)机器上运行一个java应用程序,该机器有72个CPU(启用了超线程)。因为,如果有超过64个CPU,Microsoft将CPU分为两组,java应用程序仅使用1组(或者换句话说36个CPU)。有关分组和CPU使用情况的详细信息,请参阅下面的快照。我们可以看到,java应用程序在容量上使用了36个CPU但无法使用其他CPU。
我在JVM参数中添加了+ UseNUMA,但它不起作用。有没有人知道JVM选项让它使用所有CPU组?
超线程后,Windows服务器机器有72个CPU。默认情况下,如果CPU数量超过64(https://msdn.microsoft.com/en-us/library/dd405503(VS.85).aspx),Windows会将CPU分组为两个内存节点。 Java应用程序仅使用1个节点,因此不能使用计算机。我启用了节点交错,但它也没有帮助。所以,我的问题是,是否有办法在多个内存节点上跨越Java应用程序。