服务器上 mssql 的 CPU 使用率过高(95-99%)

服务器上 mssql 的 CPU 使用率过高(95-99%)

我们的服务器在同一个机器上运行 win2003 和 mssql 2005,具有 2GB 内存。网站本身基于 dnn 4。我们看到这些高 CPU 使用率峰值(mssql)达到 95-99%,即使没有流量也是如此。有时它们会在没有流量的情况下定期出现。

这可能是什么原因造成的?如何找到根本原因?

答案1

您是否在 DNN 中启用了内容索引?这可能是 DNN 正在运行您网站内容的索引。此索引在后台执行,并且通常会在您没有其他流量活动访问数据库时发生。

我建议在您的数据库上设置一个 SQL Server Profiler 跟踪,并查看高峰时段发生的情况。

答案2

在 CPU 使用率较高的时期,您需要跳转到框并使用活动监视器,或者输入类似 sp_who2 的内容。还要检查 SQL Server 代理作业的安排时间 - 并查看这是否相关。这将让您了解谁在做什么。

Squillman 建议使用 Profiler,这是一个很好的建议,特别是在无人值守时进行监控 - 然后稍后再检查发生了什么。

答案3

  1. 检查正在运行的 SQL 代理作业。
  2. 检查以确保您没有为任何数据库启用自动收缩功能。
  3. 如果服务器不是专用于 SQL,请确保内存配置设置为留出 RAM 供其他进程使用。
  4. 其他人建议使用 Profiler/sp_who。请谨慎使用 Profiler,如果您捕获的信息过多,它可能会给压力很大的服务器带来更大的压力。

相关内容