Java 进程未访问 Windows 中的所有内核
Java process not accessing all cores in Windows
我有一个简单的压力测试,它有一个可配置的线程数,基于它 运行 所在的服务器。在一台具有 16 个内核的 Windows 机器上,我能够启动该过程,该过程依次启动 16 个线程并在测试期间保持所有内核最大化。
在另一台 Windows 有 16 个内核的机器上,我 运行 进行了测试,但它只使用了 16 个可用内核中的 8 个,即它使用了一个 CPU 而不是另一个。
我知道这更像是一个 Windows 配置问题,而不是 Java 问题,因为我已经证明测试本身在一台机器上的行为符合预期,而不是另一台机器。
使用任务管理器我可以看到系统有 16 个内核,但有些东西阻止访问其他 8 个内核。
是否有阻止单个进程使用所有内核的设置?
如果 Whosebug 不是这个问题的正确归属地,请建议另一个 Stack* 我应该把它移到哪里。
更新一个
在有问题的机器上,我之前试图 运行 1 个进程和 16 个线程。如果我 运行 两个进程,每个进程有 8 个线程,我可以使用 100% 的内核。
这与此处发布的问题相同:
这又链接到此处的 HP 公告:
我有一个简单的压力测试,它有一个可配置的线程数,基于它 运行 所在的服务器。在一台具有 16 个内核的 Windows 机器上,我能够启动该过程,该过程依次启动 16 个线程并在测试期间保持所有内核最大化。
在另一台 Windows 有 16 个内核的机器上,我 运行 进行了测试,但它只使用了 16 个可用内核中的 8 个,即它使用了一个 CPU 而不是另一个。
我知道这更像是一个 Windows 配置问题,而不是 Java 问题,因为我已经证明测试本身在一台机器上的行为符合预期,而不是另一台机器。
使用任务管理器我可以看到系统有 16 个内核,但有些东西阻止访问其他 8 个内核。
是否有阻止单个进程使用所有内核的设置?
如果 Whosebug 不是这个问题的正确归属地,请建议另一个 Stack* 我应该把它移到哪里。
更新一个
在有问题的机器上,我之前试图 运行 1 个进程和 16 个线程。如果我 运行 两个进程,每个进程有 8 个线程,我可以使用 100% 的内核。
这与此处发布的问题相同:
这又链接到此处的 HP 公告: