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

编程有钱人了 2014-04-30 03:00:50
加精
WEB服务器

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

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

谁能知道这是为什么啊?

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

求解决,分不够可以再加!!
...全文
3727 76 打赏 收藏 转发到动态 举报
写回复
用AI写文章
76 条回复
切换为时间正序
请发表友善的回复…
发表回复
u011606320 2014-05-12
  • 打赏
  • 举报
回复
学习学习。。。。
aqbeyond 2014-05-12
  • 打赏
  • 举报
回复
马克,学习学习。。。。
chuting1 2014-05-07
  • 打赏
  • 举报
回复
有的工具怎么看不出是什么
jilifang 2014-05-05
  • 打赏
  • 举报
回复
好复杂 移动微营销
编程有钱人了 2014-05-04
  • 打赏
  • 举报
回复
引用 57 楼 sz_haitao 的回复:
才用了2.72G内存,缓存的空间自然也很少 自然:读过的数据还需要重新读了。。。。
扩展AWE就好了,但是之前网站访问量6W的时候也没出现过这个问题,这很奇怪了,幸好现在服务器好了,感谢大家的帮助,初步判定就是你说的问题了,凡是帮忙的都有分
yaojunyi3721 2014-05-04
  • 打赏
  • 举报
回复
没积分发问题 A表有MODULE_NAME(模块名称)和MODULE_ID列,其中MODULE_ID为空,MODULE_NAME列为一个这样格式可能是:”1、模块列表-产品实现-献血服务-献血核查。“,也可能是“1、产品实现。” B表(模块名称表)有ID和NAME(模块名称)列,NAME列的数据为标准信息,如“产品实现”。 数据就是这样的:A表的模块名称列里的数据包含B表的NAME的数据。 现在想通过将A表关联B表实现将B表的ID更新到A表的MODULE_ID列。 请问如何实现,谢谢。
a474044500 2014-05-04
  • 打赏
  • 举报
回复
反反复复反反复复反反复复反反复复反反复复反反复复
yaojunyi3721 2014-05-04
  • 打赏
  • 举报
回复
不错,很好,学习了
xiaoxiangqing 2014-05-03
  • 打赏
  • 举报
回复
这个需要服务器配置够好,最好形成固态硬盘。
罗捷捷 2014-05-03
  • 打赏
  • 举报
回复
目测被IDC坑了, 纯路过...
nettman 2014-05-02
  • 打赏
  • 举报
回复
太恐怖了,占这么多资源
wangsufu77 2014-04-30
  • 打赏
  • 举报
回复
是不是有优化SQL的可能性,譬如考虑使用批量操作数据库等
足球中国 2014-04-30
  • 打赏
  • 举报
回复
CPU内存没有涨的停情下。IO却在疯长。那就一定出在SQL数据库了。 数据库能导至这些地方也就是触发器,存储过程与函数。 先把触发器停掉,查检一下最近的存储过程与函数的变动。
山寨DBA 2014-04-30
  • 打赏
  • 举报
回复
引用 60 楼 wangjun8868 的回复:
那是因为我刚清理过日志文件
哦哦。。。 刚才跟你说的那个数据库的属性设置一下,还有开启那个AWE再观察。
编程有钱人了 2014-04-30
  • 打赏
  • 举报
回复
引用 59 楼 hwhmh2010 的回复:
[quote=引用 56 楼 hwhmh2010 的回复:] [quote=引用 51 楼 wangjun8868 的回复:] [quote=引用 47 楼 hwhmh2010 的回复:] [quote=引用 44 楼 giftzheng 的回复:] [quote=引用 43 楼 wangjun8868 的回复:] [quote=引用 42 楼 giftzheng 的回复:] sp_configure 'show advanced options', 1 reconfigure go sp_configure 'awe enabled'
[/quote] 你这是没开的 用这个打开awe sp_configure 'awe enabled', 1 reconfigure 然后看下IO有没有下去[/quote] 打开这个需要设置锁定内存中的页,记得设置一下最大内存。。。 个人建议你先不要关注这个问题吧,理由如下: 1.AWE是32位操作系统为了提高SQL Server的内存地址寻址空间而采取的一个设置,这样设置之后可以让你的SQL Server在32位的操作系统上的内存寻址空间超过2GB。---你的操作系统是32位的?如果不是,就不用设置了 。。。 2.你的数据库每次操作大概数据量是多少? 3.看一下你的数据库属性,里面的数据文件设置,是否设置成为了按比例增长,还有就是每次增长的大小是否够用,这点很重要,有可能是你的每次操作数据量很大,但是你设置的每次数据库申请的空间大小太小 [/quote] 我的是32位的,本来让空间商装64位,他们说找不到这个磁盘阵列的64位驱动,一直拖到现在也没弄好 [/quote] 先把你的文件增长里的10%全部设置为固定值,自己考虑下大概会增长多少,我这边的数据库服务器用的是存储,所以设置的比较大,一般数据文件的话250MG,日志文件我设置的是500MB。。。你那边的话数据文件设置为150MB,日志文件设置为300MB,应该够用了,还有日志文件增长不要限制大小,你那边文件增长是不是设置了限制大小啊?[/quote] 看你的这个截图,你的数据文件那么大,日志文件却那么小,我都怀疑你是不是限制了日志文件增长的上限。。。。[/quote] 那是因为我刚清理过日志文件
山寨DBA 2014-04-30
  • 打赏
  • 举报
回复
引用 56 楼 hwhmh2010 的回复:
[quote=引用 51 楼 wangjun8868 的回复:] [quote=引用 47 楼 hwhmh2010 的回复:] [quote=引用 44 楼 giftzheng 的回复:] [quote=引用 43 楼 wangjun8868 的回复:] [quote=引用 42 楼 giftzheng 的回复:] sp_configure 'show advanced options', 1 reconfigure go sp_configure 'awe enabled'
[/quote] 你这是没开的 用这个打开awe sp_configure 'awe enabled', 1 reconfigure 然后看下IO有没有下去[/quote] 打开这个需要设置锁定内存中的页,记得设置一下最大内存。。。 个人建议你先不要关注这个问题吧,理由如下: 1.AWE是32位操作系统为了提高SQL Server的内存地址寻址空间而采取的一个设置,这样设置之后可以让你的SQL Server在32位的操作系统上的内存寻址空间超过2GB。---你的操作系统是32位的?如果不是,就不用设置了 。。。 2.你的数据库每次操作大概数据量是多少? 3.看一下你的数据库属性,里面的数据文件设置,是否设置成为了按比例增长,还有就是每次增长的大小是否够用,这点很重要,有可能是你的每次操作数据量很大,但是你设置的每次数据库申请的空间大小太小 [/quote] 我的是32位的,本来让空间商装64位,他们说找不到这个磁盘阵列的64位驱动,一直拖到现在也没弄好 [/quote] 先把你的文件增长里的10%全部设置为固定值,自己考虑下大概会增长多少,我这边的数据库服务器用的是存储,所以设置的比较大,一般数据文件的话250MG,日志文件我设置的是500MB。。。你那边的话数据文件设置为150MB,日志文件设置为300MB,应该够用了,还有日志文件增长不要限制大小,你那边文件增长是不是设置了限制大小啊?[/quote] 看你的这个截图,你的数据文件那么大,日志文件却那么小,我都怀疑你是不是限制了日志文件增长的上限。。。。
山寨DBA 2014-04-30
  • 打赏
  • 举报
回复
引用 53 楼 wangjun8868 的回复:
[quote=引用 49 楼 hwhmh2010 的回复:] [quote=引用 46 楼 wangjun8868 的回复:] [quote=引用 45 楼 DBA_Huangzj 的回复:] divfs.num_of_writes 和reads那两列,你的是64位吧?没必要开awea
32位,本来让空间商装64位,他们说找不到这个磁盘阵列的64位驱动,一直拖到现在[/quote] 天呐,现在竟然还用32为的操作系统装服务器上。。。。。。。。I 服了 U[/quote] 我也想用64的,本来让空间商装64位,他们说找不到这个磁盘阵列的64位驱动,一直拖到现在 想换了服务器了,但是现在服务器 上好几十个G的数据不好搬迁...........[/quote] 把你的数据库属性里的数据库文件里面的“自动增长/最大大小”那个设置一下,数据文件设置为150MB,日志文件设置为300MB,类型为:增长无限制。
haitao 2014-04-30
  • 打赏
  • 举报
回复
才用了2.72G内存,缓存的空间自然也很少 自然:读过的数据还需要重新读了。。。。
山寨DBA 2014-04-30
  • 打赏
  • 举报
回复
引用 51 楼 wangjun8868 的回复:
[quote=引用 47 楼 hwhmh2010 的回复:] [quote=引用 44 楼 giftzheng 的回复:] [quote=引用 43 楼 wangjun8868 的回复:] [quote=引用 42 楼 giftzheng 的回复:] sp_configure 'show advanced options', 1 reconfigure go sp_configure 'awe enabled'
[/quote] 你这是没开的 用这个打开awe sp_configure 'awe enabled', 1 reconfigure 然后看下IO有没有下去[/quote] 打开这个需要设置锁定内存中的页,记得设置一下最大内存。。。 个人建议你先不要关注这个问题吧,理由如下: 1.AWE是32位操作系统为了提高SQL Server的内存地址寻址空间而采取的一个设置,这样设置之后可以让你的SQL Server在32位的操作系统上的内存寻址空间超过2GB。---你的操作系统是32位的?如果不是,就不用设置了 。。。 2.你的数据库每次操作大概数据量是多少? 3.看一下你的数据库属性,里面的数据文件设置,是否设置成为了按比例增长,还有就是每次增长的大小是否够用,这点很重要,有可能是你的每次操作数据量很大,但是你设置的每次数据库申请的空间大小太小 [/quote] 我的是32位的,本来让空间商装64位,他们说找不到这个磁盘阵列的64位驱动,一直拖到现在也没弄好 [/quote] 先把你的文件增长里的10%全部设置为固定值,自己考虑下大概会增长多少,我这边的数据库服务器用的是存储,所以设置的比较大,一般数据文件的话250MG,日志文件我设置的是500MB。。。你那边的话数据文件设置为150MB,日志文件设置为300MB,应该够用了,还有日志文件增长不要限制大小,你那边文件增长是不是设置了限制大小啊?
水族杰纶 2014-04-30
  • 打赏
  • 举报
回复
引用 54 楼 wangjun8868 的回复:
[quote=引用 52 楼 wufeng4552 的回复:] [quote=引用 46 楼 wangjun8868 的回复:] [quote=引用 45 楼 DBA_Huangzj 的回复:] divfs.num_of_writes 和reads那两列,你的是64位吧?没必要开awea
32位,本来让空间商装64位,他们说找不到这个磁盘阵列的64位驱动,一直拖到现在[/quote] 如果32bit问题 基本由内存引起 先设置下内存 1)开启pae 2) 开启awe 3) 设置锁定内存页 我先前也说了IO、内存、cpu是相互联系的 如果内存不足IO必然增长 同时你可以看看SQLServer日志中有没有报内存的相关错误[/quote] PAE 是不是得有相应的硬件支持才行吧,直接改boot.ini行吗? 我设置好了
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Enterprise" /fastdetect /PAE /noexecute=alwaysoff
AWE,和设置锁定内存页 怎么弄[/quote] 这两个你可以百度下,很简单,图形模式 手写步骤给你太麻烦
加载更多回复(54)

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧