我正在使用 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 大部分时间都在运行。
我确实怀疑是一些后台进程造成了问题。但我真的不明白..你能给出一些提示/想法如何解决这个问题吗?