
MSSQL服务器有个郁闷的问题,烦了我好久就是找不到原因.
现在把它贴出来,高手多多发言.
环境是:WINDOW2003 ,MSSQL2000.
四个CPU,3.5G内存,三个磁盘做RAID5的磁盘阵列.
服务器每秒大概处理几千个数据操作(INS,UPD)
所有的操作都已经写存储过程,直接调用.
现象如下图:
在"性能监视器"中,每隔八分钟就会出现一次磁盘IO 100%(绿色那条线),持续时间大概30秒左右.
----------------------------------------------------------------------------------------------------
Use Master
Go
sp_configure 'allow updates', 1
reconfigure with override
Go
进入高级选项后,看看
recovery interval的值是多少
如果是CHECKPOIT,说明系统正在将脏数据刷新到硬盘,
当缓存中的脏页积累到一定的数量,SQL估计演算这些脏页要花的时间快要接近设定的recovery interval(分钟)时,系统就会产生一个checkpoint.
建议减少recovery interval试试,加快checkpoint 处理频率
------------------------------------------------------------------------------------------------------
刚刚想起了一个可能导致这个问题的原因:
这很有可能是自己的日志进行自动增长的缘故,你测试看看,是否是每隔8分钟左右,
日志就按照你设置的(按兆字节或百分比)进行了一次扩张。
结果:因为日志自动增长的问题