我有一台游戏服务器,运行在装有4 GB内存的Windows 2003上。 游戏服务器正在使用安装在同一台机器上的数据库,由SQL Server 2008pipe理。大约一个星期前,我开始观察一个奇怪的行为 – 每隔大约24小时一次,SQL Server开始大量closures磁盘,太重了,箱子变得几乎没有反应。 我可以检测Windows附带的性能监视工具中的slamming,在这种情况下,平均磁盘队列长度保持最大值100。 发生这种情况Sysinternals Process Monitor工具显示SQL Server进程正在数据库.mdf文件连续执行ReadFile调用(许多后续调用)。 数据库文件是3.2 GB。 是什么让它看起来很奇怪的是,数据库是每天24小时不间断的使用大致相同的负载,但是,这一关仅在特定的时间发生。 有谁知道什么会导致这个问题,以及如何进一步诊断? 提前致谢。
是否有任何计划数据库维护工作? (数据库备份,DBCC CHECKDB,重新索引)?
如果是的话,那可能是你的罪魁祸首。 如果没有,做一些:)
要查看实际正在进行的活动,请使用SQL Profiler实用程序或运行SQL跟踪将活动logging到文件。 这应该告诉你实际上发生了什么样的活动,以及是否需要调整一些查询或采取其他一些行动。
最后一个想法:是AutoShrink? 如果是的话,把它关掉!
以下是一些支持最后声明的文章:
我会让文章标题为自己说:)
您的游戏服务器上是否安装了防病毒软件?
如果您安装了SQL Server Management Studio,那么在发生这种情况时,我会检查活动监视器,并查看是否可以隔离特定的进程或计划的作业。