公司的一台服务器上跑数据库,客户端链接数在200多,没做PM维护之前,cpu在30%到50%,还算正常。PM动作:该服务器是群集服务中的一个,PM的时候对另一个群集节点重装了系统,在该服务器上做了索引重建,扩展分区,删除了一些历史数据。
服务器的配置4个2.4的cpu,16G内存,数据库主数据文件200G左右PM后的现状:
该服务器的cpu在90%以上,间断也会出现20%,可是只是暂时的,随后还是在90%,连接数还和原来一样,客户端也没有反应慢的情形,所有的服务都正常运行。请问这是怎么回事?怎么解决?

解决方案 »

  1.   

    查查看是哪个进程占用的SQL资源,干掉。
      

  2.   

    那没做PM的时候,同样的运行cpu只有40到50,这个怎么解释呢?
      

  3.   

    cpu占90%的话,肯定需要处理。如果pm前后程序没有程序变动的话,sql profiler跟踪下是否有耗时的sql.
    另外看一下性能计数器,看下io队列情况。
      

  4.   


    排错的方法不是直观的判断
    而是追踪数据,检查究竟是什么线程一直占用cpu的,然后对比之前的log
      

  5.   


    我的意思是看看是自己的哪个程序占用的CPU比较多,优化下SQL试试。呵呵。。
      

  6.   

    1.这种现象是在两个node上多这样吗? 还是failover到其中的一个有问题?
    2.你说的都有用的进程是spid>51的有用进程吗?
      

  7.   

    今天有发现个问题,在用sql自带性能跟踪软件的时候,cpu居然刷的一下降下来了,停止跟踪,cpu又恢复到原来那么高了,这是怎么回事啊?真是摸不清了!
      

  8.   


    今天有发现个问题,在用sql自带性能跟踪软件的时候,cpu居然刷的一下降下来了,停止跟踪,cpu又恢复到原来那么高了,这是怎么回事啊?真是摸不清了!sql profiler跟踪下来的sql基本上全部正常的,搞不懂了!SQL里面是否也有什么参数设置啊?我看资料oracle里面有好多参数设置,是否做了设置参数造成的?
      

  9.   

    长期90%应该是CPU负荷太重,考虑从硬件和数据库2方面考虑。
      

  10.   


    灵异事件?多跟踪几次吧,找出CPU开销较大的事务,这是最直接的方法了。