查看: 8305|回复: 24

SQLServer I/O写入次数很高,CPU100%

[复制链接]
论坛徽章:
190
生肖徽章:狗
日期:2006-11-23 04:26:03生肖徽章:羊
日期:2007-09-26 17:08:21生肖徽章:马
日期:2007-09-26 17:08:49授权会员
日期:2007-12-31 19:14:41生肖徽章2007版:牛
日期:2008-03-28 10:02:30奥运会纪念徽章:柔道
日期:2008-04-30 16:28:44奥运会纪念徽章:垒球
日期:2008-05-12 21:28:28奥运会纪念徽章:体操
日期:2008-06-26 10:00:41奥运会纪念徽章:沙滩排球
日期:2008-07-27 12:41:59奥运会纪念徽章:艺术体操
日期:2008-07-30 11:09:47
跳转到指定楼层
1#
发表于 2008-7-3 09:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
SQLServer I/O写入次数很高,CPU100%


问题描述:PC服务器,志强3.0双核,2G内存,普通硬盘分区c,d,e盘,sqlserver2000版本,大量insert操作(每秒10次左右),
这个插入是调用的存储过程,过程里先判断是否符合插入条件,并且对10几个表做插入动作。

从任务管理器看,sqlserver进程占用1G左右的内存,cpu占用率100%
,内存空闲500M。


通过sysprocesses看到当并发量超过10个以后,CPU就会到达100%。

等待事件基本都是
NETWORKIO
NETWORKIO
NETWORKIO
NETWORKIO
NETWORKIO
NETWORKIO
NETWORKIO
NETWORKIO

对这种状况没有什么经验,哪位兄弟告诉我,该从哪里下手解决吗?

[ 本帖最后由 jieyancai 于 2008-7-3 10:13 编辑 ]
论坛徽章:
2
生肖徽章2007版:鼠
日期:2008-01-02 17:35:532011新春纪念徽章
日期:2011-02-18 11:43:36
2#
发表于 2008-7-3 10:24 | 只看该作者
你的SQL SERVER 版本是什么?

print @@version


SELECT SERVERPROPERTY('ProductLevel')

[ 本帖最后由 lovexueer 于 2008-7-3 10:30 编辑 ]

使用道具 举报

回复
论坛徽章:
6
开发板块每日发贴之星
日期:2008-05-31 01:02:30ITPUB元老
日期:2008-06-23 12:58:52奥运会纪念徽章:蹦床
日期:2008-10-24 13:19:512009新春纪念徽章
日期:2009-01-04 14:52:28生肖徽章2007版:鼠
日期:2009-03-10 21:12:51授权会员
日期:2010-07-01 14:33:08
3#
发表于 2008-7-3 10:31 | 只看该作者
和版本有关?
express?

使用道具 举报

回复
论坛徽章:
190
生肖徽章:狗
日期:2006-11-23 04:26:03生肖徽章:羊
日期:2007-09-26 17:08:21生肖徽章:马
日期:2007-09-26 17:08:49授权会员
日期:2007-12-31 19:14:41生肖徽章2007版:牛
日期:2008-03-28 10:02:30奥运会纪念徽章:柔道
日期:2008-04-30 16:28:44奥运会纪念徽章:垒球
日期:2008-05-12 21:28:28奥运会纪念徽章:体操
日期:2008-06-26 10:00:41奥运会纪念徽章:沙滩排球
日期:2008-07-27 12:41:59奥运会纪念徽章:艺术体操
日期:2008-07-30 11:09:47
4#
 楼主| 发表于 2008-7-3 10:55 | 只看该作者
Microsoft SQL Server  2000 - 8.00.2039 (Intel X86)
        May  3 2005 23:18:38
        Copyright (c) 1988-2003 Microsoft Corporation
        Enterprise Edition on Windows NT 5.0 (Build 2195: Service Pack 4)

使用道具 举报

回复
论坛徽章:
54
秀才
日期:2017-02-22 15:18:002015年新春福章
日期:2015-03-06 11:57:31懒羊羊
日期:2015-03-04 14:48:16马上有对象
日期:2014-10-24 17:37:552014年世界杯参赛球队: 比利时
日期:2014-08-05 11:35:382014年世界杯参赛球队: 阿根廷
日期:2014-07-15 10:49:33马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11路虎
日期:2014-01-02 12:55:56ITPUB社区12周年站庆徽章
日期:2013-10-08 15:00:34
5#
发表于 2008-7-3 11:20 | 只看该作者
SP作了哪些动作,相应的资料结构是否合理
一条记录的大小、硬盘是IDE么,是否有其他服务在此SERVER上<争用资源>
网络是否有其他如文件传输导致瓶颈

每秒10次的负荷很轻,对于SERVER来说

使用道具 举报

回复
论坛徽章:
2
生肖徽章2007版:鼠
日期:2008-01-02 17:35:532011新春纪念徽章
日期:2011-02-18 11:43:36
6#
发表于 2008-7-3 12:01 | 只看该作者
运行dbcc sqlperf(waitstats,clear),重新查询看一下有那些等待事件比较长的

另外关注两点:

1)等待事件中有无CXPACKET
2)看一下客户端资源使用有无异常
3)检查一下client和server的网卡是否正常(network interface count /output length )


networkio等待事件本质是说明client接收速度跟不上sql sever 返回数据的速度.

使用道具 举报

回复
论坛徽章:
190
生肖徽章:狗
日期:2006-11-23 04:26:03生肖徽章:羊
日期:2007-09-26 17:08:21生肖徽章:马
日期:2007-09-26 17:08:49授权会员
日期:2007-12-31 19:14:41生肖徽章2007版:牛
日期:2008-03-28 10:02:30奥运会纪念徽章:柔道
日期:2008-04-30 16:28:44奥运会纪念徽章:垒球
日期:2008-05-12 21:28:28奥运会纪念徽章:体操
日期:2008-06-26 10:00:41奥运会纪念徽章:沙滩排球
日期:2008-07-27 12:41:59奥运会纪念徽章:艺术体操
日期:2008-07-30 11:09:47
7#
 楼主| 发表于 2008-7-3 12:55 | 只看该作者
我的系统不是一上来就CPU100%的,只是并发数高的时候,比如超过8个左右就CPU就冲到100%了,如果并发数少了,CPU也下来了。

没有其他所谓的争用。

使用道具 举报

回复
论坛徽章:
190
生肖徽章:狗
日期:2006-11-23 04:26:03生肖徽章:羊
日期:2007-09-26 17:08:21生肖徽章:马
日期:2007-09-26 17:08:49授权会员
日期:2007-12-31 19:14:41生肖徽章2007版:牛
日期:2008-03-28 10:02:30奥运会纪念徽章:柔道
日期:2008-04-30 16:28:44奥运会纪念徽章:垒球
日期:2008-05-12 21:28:28奥运会纪念徽章:体操
日期:2008-06-26 10:00:41奥运会纪念徽章:沙滩排球
日期:2008-07-27 12:41:59奥运会纪念徽章:艺术体操
日期:2008-07-30 11:09:47
8#
 楼主| 发表于 2008-7-3 12:57 | 只看该作者
原帖由 lovexueer 于 2008-7-3 12:01 发表
运行dbcc sqlperf(waitstats,clear),重新查询看一下有那些等待事件比较长的

另外关注两点:

1)等待事件中有无CXPACKET
2)看一下客户端资源使用有无异常
3)检查一下client和server的网卡是否正常(network interface count /output length )


networkio等待事件本质是说明client接收速度跟不上sql sever 返回数据的速度.


没有所谓的客户端啊

IIS6+sqlserver2000+windows2003
程序和数据库都在一台机器上的。

客户端请求发给一个ASP页面,然后ASP页面执行插入的存储过程。过程就是这样。

使用道具 举报

回复
论坛徽章:
2
生肖徽章2007版:鼠
日期:2008-01-02 17:35:532011新春纪念徽章
日期:2011-02-18 11:43:36
9#
发表于 2008-7-3 13:07 | 只看该作者
运行dbcc sqlperf(waitstats,clear)后
当cpu高时,把所有等待事件及等待时间列出来.

然后把等待时间最长的会话执行SQL列出来:
dbcc inputbuffer(sid)


另外我上面说了,你查一下网卡是否工作正常,看相关计数器网卡的peaktime 传输速度多少?

[ 本帖最后由 lovexueer 于 2008-7-3 13:15 编辑 ]

使用道具 举报

回复
论坛徽章:
2
生肖徽章2007版:鼠
日期:2008-01-02 17:35:532011新春纪念徽章
日期:2011-02-18 11:43:36
10#
发表于 2008-7-3 13:09 | 只看该作者
另外你的存储过程源码show一下.

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表