繁体   English   中英

CPU利用率和线程

[英]CPU Utilization and threads

我们在一个运行有四个处理器的四核服务器上的客户站点上有一个交易密集型流程。 该过程旨在利用每个可用的核心。 因此,在此安装中,我们采用输入队列,将其除以16,然后将队列的每个部分分配给一个核心。 它运作良好,并与盒子上的交易量保持一致。

从包装盒上的CPU使用率来看,它似乎从未超过33%。 现在我们有了一个新客户,其数量至少是现有客户的两倍。 我们中有些人认为,由于CPU使用率远低于最大利用率,因此我们应该使用相同的配置。

其他人则声称CPU利用率和事务处理速度之间没有直接关联,并且由于底层软件模块的逻辑基于可用核的数量,因此有理由获得一个具有更多比例的新客户可用核的盒子以适应增加的流量。

在这种情况下,有谁知道谁是正确的?

谢谢,

为了确定新客户的最佳配置,最重要的是了解CPU使用率低的原因。

原因很可能是以下原因之一:

  • 您的过程受内存带宽的限制。 在这种情况下,如果主板支持的话,更快的RAM会有所帮助。 如果可能,重新设计以限制处理期间访问的数据量将提高性能。 单独添加更多的CPU内核将无助于提高性能。

  • 您的过程受磁盘I / O的限制。 使用更快的磁盘连接(SATA等)和/或升级到SSD可能会有所帮助,但更多的CPU功能却无济于事。

  • 您的过程受到同步争用的限制。 在这种情况下,为更多核心添加更多线程甚至可能适得其反。 在这种情况下,重新设计算法可能会有所帮助。

话虽这么说,我还看到了这样的情况:在现代Turbo处理器(Core i7等)上,受CPU约束的进程肯定无法达到100%的CPU使用率,因为在某些Turbo Boost相关情况下,任务管理器将显示不到100%。

正如9000所说,您需要找出负载下的瓶颈。 Perfmon可能提供足够的数据来查找。

另一个事后的想法:您可以将现有计算机上的进程限制为部分内核(但至少应为30%),因此从理论上讲,CPU不会由于此限制而成为瓶颈,并检查总体吞吐量是否下降。 否则,添加更多内核将不会提高性能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM