现在数据库服务器在晚上21:30---到21:35分钟时候,会出现CPU--100%情况我用SQL 事件探查器跟踪也没有发现在这个时间段出现什么SQL语句性能很差的情况,当CPU100%一些常用的SQL语句也会性能变的很差,也会开始出现现死锁的情况.
我查了,这个时间段也没有什么定时任务在执行.
我想请问一下,什么情况下会出现CPU100%情况,我怎么跟踪了,因为我跟踪后看出不什么问题.
谢谢各位.找了一段时间都没有找到原因.

解决方案 »

  1.   

    不一定就是SQL造成CPU--100%你查查其他进程.
      

  2.   

    任务管理器--查看CPU使用情况--那个进程占用过多。
    如果是SQL Server ,再用事件查看器查看
      

  3.   

    可以确定是SQL造成CPU100%
      

  4.   

    出现CPU100%只会出现5分钟,5分钟后就会全部正常.
      

  5.   

    用 管理工具——性能,监控一下。 看CPU的峰值与I/O还是与别的有关。 然后进一步进行处理!
      

  6.   

    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%,当你关闭快捷菜单的时候才返回正常水平。 
      

  7.   

    开profiler监控这个时间段内的所有sql.
    如果没有问题,那就不是sql server问题。
      

  8.   

    你21.30之前登陆服务器,直接查看那个进程占CPU,要先确定是不是SQL作怪。如果是SQL再查看定时作业。
      

  9.   

    谢谢各位,昨天晚上又是一样的情况,到在21:30时间,数据库性能就变的很差,事务锁一大片.
    我开启了事件探查器没有什么程序性能在这个时间之前占用资源很大的情况,出现性能变差后,常用的SQL语句性能也变的很差了.
    在这个时间段的时候,就是SQL进程CPU占有率在80-99%之间,5分钟内一直这样.
    求助各位,有什么情况SQL会这样,定时作业备份与操作,我手工提前也不会出现CPU-100%情况,杀毒昨晚也杀了,没有.
      

  10.   

    昨晚在跟踪时候,我查看那个时间段是不是有增加的进程没有,我怕是杀毒软件造成的,在那个时间杀毒软件也关了.一到时间就开始SQL占CPU很高.打开事件探查器,在这个时间之前一直都没有什么SQL操作占CPU很高.
      

  11.   

    事件探查器
    我开了二个,SQLServerProfilerTSQL_Duration  与SQLServerProfilerStandard这二个模版
      

  12.   

    在那个时间段内,运行以下语句,贴出结果select * from sys.dm_exec_sessions 
    order by cpu_time desc 
      

  13.   

    您好,我的是SQL Server 2000
    select * from sys.dm_exec_sessions 
    order by cpu_time desc 
    这个不能用,有其它替代语句吗?
      

  14.   


    1. 2000并没有这样的语句,但是可以用其他变通的方法来实现.2. 但是我觉得你这个问题还是和定时作业有关,建议你今天晚上在9:25时,把SQL Server agent service 停掉,然后再看看问题会不会在9:30-9:35之间出现。 3. 在发生问题的时间里面,你有没有什么windows task在运行,如果有,先把他停掉。
      

  15.   

    4.考虑一下,有没有某个程序在这个时刻启动来获取SQL Server的数据
      

  16.   

    是不是SQL SERVER 中有什么定时的操作,如定时备份、定时与其他数据库同步等???
      

  17.   

    那你看SQL Serve 的job,看看谁的schedule是从9:30开始的。如果job不多的话,手工查看。
      

  18.   

    用代码的话看看这两个link:http://www.mssqltips.com/tip.asp?tip=1622http://www.sql-server-performance.com/articles/dba/job_report_p2.aspx
      

  19.   

    问题还是没有解决
    代理关掉,查看了系统进程没有多,网络流程也没有什么变化,
    只是SQL CPU占有率变成90以上,进程从90 一下子增加到了134个.
    另外发现audit log 与 audit logout  内容很
    有部分audit logout 占有资源很大再麻烦一下各位,有没有什么方法能查出原因?
      

  20.   

    看一下增加的那个进程都是些什么东西?有那些东西占用CPU比较多,一个个排查,如果是突然增加这么多,应该不排出病毒!
      

  21.   

    我估计你这个是由于程序中的一些代码引起的。楼主可以测试及收集一下一天的其它时间段 sqlserver的连接数,  然后与这5分钟内连接数做个对比,看是否数量突增了。
      

  22.   

    有两种可能的情况:1. 该事件点有某个功能的触发,引起大量消耗CPU的操作,这需要监控到具体的语句;
    2. 在该时间点有某个非常常用的表的数据批量操作(导入或删除),引起大量SQL语句的重编译;如果楼住的SQL压力比较大的化,根据现象描述,倾向于第二种可能性。
      

  23.   

    我也遇到cpu 100%  ,但是没有这位说的这么有规律
    我觉得是sql引起的,但是我不知道怎么定位,小F能给点意见吗?感激不尽!