none
SQL 2008 R2 开机后,CPU占用率高,约60%~70% RRS feed

  • 问题

  • 一台DELL R620服务器,  至强4核CPU*1, 16G内存, 今天(2014-10-28) 10:00起, 服务器运行缓慢, 重启服务器3次,每次的情况就是重启完成后, sql server 就占用约60%~70%的CPU使用率,导致运行缓慢, 如果客户机再开启相应的客户端程序,服务器的CPU占用率为 80%~90%,基本上无法操作,服务器硬件正常,服务器没有做过任何的更改操作,包括系统、硬件、SQL SERVER,

    哪位朋友能指导?谢谢

    我的邮箱: gdkplsq    hotmail.com 的

    2014年11月28日 14:48

答案

  • 对 SQL Server不是很熟悉的话,可以用排除法定位问题

    1. 你可以先把 SQL 服务停掉,如果 CPU 降下来,说明是 SQL 的问题

    2. 进一步,把 SQL 的 TCP 协议停掉, 这样防止客户端连接,只把 SQL 服务启动,SQLAgent服务保持停止

    如果这样启动之后,CPU马上上升,则可能是设置有启动SQL时自动运行的存储过程导致的,你可以用下面的语句查下

    use master
    select * from sys.objects
    where type in ('X','P','PC') and ObjectProperty(object_id, 'ExecIsStartup') = 1

    要禁用的请,使用 exec master..sp_procoption 'xxx', 'startup', 0

    3. 如果没有问题,则启动 SQLAgent 服务,如果启动一段时间之后CPU有问题,则是 Job的问题,你可以看看当前正在运行的Job,并把它们逐个停掉,如果停掉某个Job就好了,则是该Job的问题

    4. 如果不是Job的问题,则把SQL的TCP协议启用,然后重启SQL服务,让客户端可以连接,这种情况可以确定是程序使用的某个SQL有问题了,这种情况需要查询进程(sysprocess表)中 CPU 调摄的查询做进一步判断,也可以用Profile跟踪CPU高的操作

    2014年12月1日 3:17

全部回复

  • What did sql do that caused high cpu time? You can check with 'sp_who2 active', sounds sql is recovering dbs.
    2014年11月29日 2:12
  • 对 SQL Server不是很熟悉的话,可以用排除法定位问题

    1. 你可以先把 SQL 服务停掉,如果 CPU 降下来,说明是 SQL 的问题

    2. 进一步,把 SQL 的 TCP 协议停掉, 这样防止客户端连接,只把 SQL 服务启动,SQLAgent服务保持停止

    如果这样启动之后,CPU马上上升,则可能是设置有启动SQL时自动运行的存储过程导致的,你可以用下面的语句查下

    use master
    select * from sys.objects
    where type in ('X','P','PC') and ObjectProperty(object_id, 'ExecIsStartup') = 1

    要禁用的请,使用 exec master..sp_procoption 'xxx', 'startup', 0

    3. 如果没有问题,则启动 SQLAgent 服务,如果启动一段时间之后CPU有问题,则是 Job的问题,你可以看看当前正在运行的Job,并把它们逐个停掉,如果停掉某个Job就好了,则是该Job的问题

    4. 如果不是Job的问题,则把SQL的TCP协议启用,然后重启SQL服务,让客户端可以连接,这种情况可以确定是程序使用的某个SQL有问题了,这种情况需要查询进程(sysprocess表)中 CPU 调摄的查询做进一步判断,也可以用Profile跟踪CPU高的操作

    2014年12月1日 3:17