我正在使用SQL Server 2008 R2。在开发环境中,我可以看到CPU处于几分钟的负载下(大约55%-80%,而正常情况下是1-2%。是的 - 在我的开发环境中,正常负载几乎没有!)。在此CPU压力时间内,自动化测试有时会出现超时错误。意外的CPU峰值
刚在活动监视器中遇到超时。看起来是这样的:在这些压力的时刻
Tipicaly它看起来像这样:
问题是,我无法理解为什么它正在发生!持续执行自动化测试,但他们没有承担繁重的工作量。在性能测试过程中,系统运行良好,如果速度变慢,总会有很好的解释。
我试着通过
- 运行跟踪来解决问题,但这些CPU高峰期间,存在“没什么特别的”事情。没有昂贵的查询。
- 使用SQL活动监视器 - 一切似乎正常,除了CPU(就像1-2等待任务,低I/O,~5请求/秒)。最近昂贵的查询并不昂贵。
- 查询数据。使用着名的sp_WhoIsActive和sys.dm_exec_requests。据我understand-没什么不寻常的再次..
关于我的服务器
- 有数据库数量少,我知道他们好。
- 使用Service Broker。
- 痕迹正在大部分时间运行。
我怀疑是一些后台进程出现问题。但我真的没有得到它..你可以请提供一些提示/想法如何解决这个问题?
也许它可能是您的数据库文件偶尔会踢的自动增长? –
@MikaelEriksson数据库增长缓慢,并且有足够的空间。数据库是在简单的恢复模式。 –
是的,但分配过程是在一个特定的时间点完成的。如果您的数据库每次达到极限时都设置为增长10Gb,则可能导致问题。 – Diego