问题描述: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对这种状况没有什么经验,哪位兄弟告诉我,该从哪里下手解决吗?

解决方案 »

  1.   

    这个 CPU 占用率简直太恐怖了。事件探查器不见得能跟踪出来。
      

  2.   

    看看枪枪的这个帖子:
    转石头大侠的. CPU占用率高的九种可能 
    1、防杀毒软件造成故障 
    由于新版的KV、金山、瑞星都加入了对网页、插件、邮件的随机监控,无疑增大了系统负担。处理方式:基本上没有合理的处理方式,尽量使用最少的监控服务吧,者,升级你的硬件配备。 
    2、驱动没有经过认证,造成CPU资源占用100% 
    大量的测试版的驱动在网上泛滥,造成了难以发现的故障原因。 处理方式:尤其是显卡驱动特别要注意,建议使用微软认证的或由官方发布的驱动,并且严格核对型号、版本。 
    3、病毒、木马造成 
    大量的蠕虫病毒在系统内部迅速复制,造成CPU占用资源率据高不下。解决办法:用可靠的杀毒软件彻底清理系统内存和本地硬盘,并且打开系统设置软件,察看有无异常启动的程序。经常性更新升级杀毒软件和防火墙,加强防毒意识,掌握正确的防杀毒知识。 
    4、控制面板—管理工具—服务—RISING REALTIME MONITOR SERVICE点鼠标右键,改为手动。 
    5、开始->;运行->;msconfig->;启动,关闭不必要的启动项,重启。 
    6、查看“svchost”进程。 
    svchost.exe是Windows XP系统的一个核心进程。svchost.exe不单单只出现在Windows XP中,在使用NT内核的Windows系统中都会有svchost.exe的存在。一般在Windows 2000中svchost.exe进程的数目为2个,而在Windows XP中svchost.exe进程的数目就上升到了4个及4个以上。 
    7、查看网络连接。主要是网卡。 
    8、查看网络连接 
    当安装了Windows XP的计算机做服务器的时候,收到端口 445 上的连接请求时,它将分配内存和少量地调配 CPU资源来为这些连接提供服务。当负荷过重的时候,CPU占用率可能过高,这是因为在工作项的数目和响应能力之间存在固有的权衡关系。你要确定合适的 MaxWorkItems 设置以提高系统响应能力。如果设置的值不正确,服务器的响应能力可能会受到影响,或者某个用户独占太多系统资源。 
    要解决此问题,我们可以通过修改注册表来解决:在注册表编辑器中依次展开[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceslanmanserver ]分支,在右侧窗口中新建一个名为“maxworkitems”的DWORD值。然后双击该值,在打开的窗口中键入下列数值并保存退出: 
    9、看看是不是Windows XP使用鼠标右键引起CPU占用100% 
    在资源管理器里面,当你右键点击一个目录或一个文件,你将有可能出现下面所列问题: 
    任何文件的拷贝操作在那个时间将有可能停止相应 
    网络连接速度将显著性的降低 
    所有的流输入/输出操作例如使用Windows Media Player听音乐将有可能是音乐失真成因: 
    当你在资源管理器里面右键点击一个文件或目录的时候,当快捷菜单显示的时候,CPU占用率将增加到100%,当你关闭快捷菜单的时候才返回正常水平。 
      

  3.   

    我的系统不是一上来就CPU100%的,只是并发数高的时候,比如超过8个左右就CPU就冲到100%了,如果并发数少了,CPU也下来了。
      

  4.   

    你用哪种 RAID 方案,硬盘多少rpm?
      

  5.   

    并发数高导致CPU高?
    你都是些什么应用?
    很消耗资源么?
    大量数据的读取?
    还是......
      

  6.   

    主要就是insert插入操作,而插入是调用的存储过程,过程里先select查询判断是否符合插入条件,符合就插入,并且对10几个表做插入动作。硬盘7200转/分,接口最大传输率300M/s
      

  7.   

    楼主的是个人PC. 并发大量insert.
    没跳出应该程序错误,让你终止或取消窗口就不错了。
      

  8.   

    其他情况说明:IIS6+sqlserver2000+windows2003
    程序和数据库都在一台机器上的。客户端请求发给一个ASP页面,然后ASP页面执行插入的存储过程。过程就是这样。网卡情况:
    链接速度 100 Mbps
    发送的字节数 1463239119
    接收的字节数 1429337187
      

  9.   

    把IIS和数据库装一台服务器上本来就不可取建议两台服务器吧,把你的IIS和数据库服务器分开放
      

  10.   

    可以考虑优化数据结构和SQL语句