为什么一个进程在一台拥有双倍内核的机器上使用的CPU资源会增加一倍以上



我希望有人能在这里为我指明正确的方向,这样我就能了解更多关于这方面的信息。

我们在iMac Pro 8核机器上运行了一个进程,它使用了约78%的CPU。

当我们在新的Mac Pro 16核机器上运行相同的进程时,它使用了大约176%的CPU。

这可能有什么原因?我们希望额外的内核能让我们同时运行更多的进程,但如果每个内核都使用两倍以上的CPU资源,这肯定意味着我们能够在新机器上运行更少的进程吗?

我对建筑肯定有一些明显的缺失。有人能帮忙吗?我知道我还没有包括任何代码示例,我只是从更普遍的意义上询问可能导致这种情况的场景。

我怀疑CPU线程管理器试图尽可能多地使用CPU。如果有更多的进程需要CPU时间,那么每个进程的周期将更加节约。假设你的任务在新Mac上运行得相应更快?

较高的CPU利用率表明它能够使用更多的硬件。没关系。你应该期望它在更短的时间内使用该硬件,因此应该在相同的总时间内完成更多的事情。

至于原因,完全取决于代码。有些代码根据内核的数量来决定要使用多少线程。如果存在非CPU瓶颈(例如硬盘驱动器或GPU(,那么更快的系统可以允许进程花费更多的时间进行计算,减少等待非CPU资源的时间,这将表现为更高的CPU利用率和更快的吞吐量。

如果您的实际目标是拥有更多的流程,而不是更高的吞吐量(这可能是一个非常合理的目标(,那么您将需要调整流程以使用更少的资源,即使这些资源是可用的。如何做到这一点完全取决于代码。是否需要这样做将取决于测试当多个进程之间存在争用时系统的行为。在许多系统中,它会自行处理。如果没有问题,就没有问题。较高或较低的CPU利用率本身并不是问题。这取决于系统,您的瓶颈在哪里,以及您试图优化的目标。

相关内容

  • 没有找到相关文章

最新更新