-1

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

刚刚在活动监视器中遇到超时。看起来像这样: 在此处输入图像描述

通常在这些压力时刻,它看起来像这样: 在此处输入图像描述

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

我试图通过

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

关于我的服务器

  • 数据库数量很少,我确实很了解它们。
  • 使用服务代理。
  • Trace 大部分时间都在运行。

我确实怀疑是一些后台进程造成了问题。但我真的不明白..你能给出一些提示/想法如何解决这个问题吗?

4

2 回答 2

0

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

微软的家伙告诉 SQL DB 端没有问题,如果 cpu 是尖峰的。最后问题由 Microsoft 解决,实际上问题是在 IIS 上,而不是 SQL Server。

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

于 2013-02-19T05:31:57.157 回答
0

它可能是一些内部 SQL Server 作业。就像一个大索引重建。

等待尖峰和run sp_who2 'active'。检查列 CPU 时间。

实际上,您如何 100% 确定 SQL 负责?这不是一个问题吗?

于 2012-05-24T08:58:21.087 回答