4 个 CPU - 2 个占 100%,2 个占 30% - 我该如何均衡负载?

4 个 CPU - 2 个占 100%,2 个占 30% - 我该如何均衡负载?

在 SQL Server 2008 上运行作业时,我注意到 2 个 CPU 以 100% 运行,但另外 2 个只有 30% 左右。

我怎样才能分散负载并减少目前耗时超过 1 小时的作业时间?

它运行在带有 SAN 的 Windows Server 2008 -VmWare 上。32 位。~3.5GB 内存。

如果您需要更多信息,请询问。

答案1

如果不修改作业以便并行完成更多工作,即使您设法平衡负载,您的性能也可能变差。两个处于 100% 的 CPU 可能专用于两个并行流,移动它们会导致上下文切换和加载 CPU 内存缓存的额外开销。另外两个可能正在共享额外的负载,而前两个进程可能会造成瓶颈。

如果您可以增加作业并行运行的程度,您也许可以节省时间,但仍需要半个多小时。(当前运行时间 * 260/400 应该是最好的改进。)

在这种情况下,瓶颈很常见。如果你解决了一个瓶颈,你很可能会发现另一个瓶颈。

一些数据库问题可以通过修改相关查询来解决。鉴于 CPU 似乎是瓶颈,因此可能可以改进数据库代码。这将需要调整使用最多 CPU 的查询。对应用程序进行性能分析可能会产生有助于优化应用程序的信息。

相关内容