日期:2014-05-16  浏览次数:20548 次

SqlServer.exe大量I/O的问题导致服务器变慢
WEB服务器

如图所示:8分钟之内,SqlServer.exe这个进程已经读取11G的数据量,11分钟的时候打到了20个G,大量的I/O导致服务器运行很慢(不是网速慢),

用流量监控发现,数据正常,往外流出的数据非常正常,内存占用也正常,CPU 也正常(图二)
重启服务器,10分之内很正常,以后就不行了,不能老重启服务器啊。

谁能知道这是为什么啊?

关于数据表优化方面,每个有建有索引,无复杂逻辑。
前段时间服务器还运行很正常。SqlServer.exe的I/O很正常,这几天不行了,!网站无修改,
没出过DDOS攻击,服务器有专门的DDOS监控的

求解决,分不够可以再加!!
------解决方案--------------------
贴结果
SELECT  DB_NAME(mf.database_id) AS databaseName ,
        mf.physical_name ,
        divfs.num_of_reads ,
        divfs.num_of_bytes_read ,
        divfs.io_stall_read_ms ,
        divfs.num_of_writes ,
        divfs.num_of_bytes_written ,
        divfs.io_stall_write_ms ,
        divfs.io_stall ,
        size_on_disk_bytes ,
        GETDATE() AS baselineDate
FROM    sys.dm_io_virtual_file_stats(NULL, NULL) AS divfs
        JOIN sys.master_files AS mf ON mf.database_id = divfs.database_id
                                       AND mf.file_id = divfs.file_id

------解决方案--------------------
1)SQLServer本身就是个喜欢内存的东西,如果有大量的IO操作,吃内存很正常
2)监控产生大量IO的语句都执行什么操作,是索引不合适导致大量的page in page out还是你语句一定要返回这么大的数据量
 
------解决方案--------------------
坐等学习中。。。
------解决方案--------------------
IO高是结果,不是原因.导致IO高的原因有很多,建议先看sql server里需要调的部分
------解决方案--------------------
引用:
IO高是结果,不是原因.导致IO高的原因有很多,建议先看sql server里需要调的部分
你这名字太明显了吧。。。
------解决方案--------------------
引用:
Quote: 引用:

1)SQLServer本身就是个喜欢内存的东西,如果有大量的IO操作,吃内存很正常
2)监控产生大量IO的语句都执行什么操作,是索引不合适导致大量的page in page out还是你语句一定要返回这么大的数据量
 

回答你第第一个问题:问题是大量的I/O,没有导致内存增长啊
回答你第第二个问题:我的网站没要求返回大数据量的东西,之前运行好好的!及时每天的访问量达到6W(PV)的时候。服务器都是正常,SqlServer.exe进程都是正常,大型的数据数据都有缓存池

IO、内存、CPU这些都是 相互影响的
IO大必定要缓存,内存上去也是正常的,如果这个时候内存上不去,那看看内存的设置是不是有问题
select top 10 * from sys.dm_os_wait_stats
order by wait_time desc
go
select top 10 * from sys.dm_os_wait_stats
where wait_type like 'pageiolatch%'
order by wait_type desc
看看都在等待什么东西
------解决方案--------------------
引用:
Quote: 引用:

IO高是结果,不是原因.导致IO高的原因有很多,建议先看sql server里需要调的部分
你这名字太明显了吧。。。

着急 这什么情况?
------解决方案--------------------