意外的CPU峰值

时间:2012-05-24 08:51:59

标签: sql-server-2008

我正在使用SQL Server 2008 R2。在开发环境中,我可以看到CPU处于负载状态几分钟(约55%-80%,而正常情况下为1-2%。是的,我的开发环境中的正常负载几乎没有! / em>的)。在此CPU压力时间内,自动测试有时会出现超时错误。

活动监视器中只有经验超时。看起来像这样: enter image description here

Tipicaly在这些压力时刻看起来像这样: enter image description here

问题是我无法理解为什么会这样!有持续执行的自动化测试,但它们不会造成繁重的工作量。在性能测试期间,系统运行良好,如果速度减慢,总会有很好的解释。

我试图通过

来解决问题
  • 运行跟踪,但在那些CPU峰值期间,“没有什么特别的”发生。没有昂贵的查询。
  • 使用SQL Activity Monitor-一切看起来都很正常,除了CPU(就像1-2个等待任务,低I / O,~5个请求/秒)。最近昂贵的查询并不昂贵。
  • 查询数据。使用着名的sp_WhoIsActive和sys.dm_exec_requests。据我所知 - 没有什么不寻常的......

关于我的服务器

  • 数据库数量很少,我知道它们很好。
  • 使用Service Broker。
  • Trace大部分时间都在运行。

我确实怀疑是一些背景过程正在制造问题。但我真的不明白..你能否提出一些提示/想法如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

它可能是一些内部SQL Server作业。就像重建大指数一样。

等待加标和run sp_who2 'active'。检查CPU时间列。

实际上,你如何100%确定SQL是负责任的?难道不是SO问题吗?

答案 1 :(得分:0)

我遇到了同样的问题,并向微软提出了案例。

微软的家伙告诉我,如果cpu被飙升,SQL DB方面没有问题。最后问题由Microsoft解决,实际问题是在IIS上,而不是SQL Server。

每隔29天就需要重新启动IIS,以便在应用程序上获得更好的性能。