zoukankan      html  css  js  c++  java
  • 寻找CPU使用率高的进程方法

    寻找CPU使用率高的进程方法

    发布时间:  2017-07-13 浏览次数:  1362 下载次数:  0

     问题描述

    节点报CPU使用率高,甚至出现“ALM-12016 CPU使用率超过阈值”告警,需要定位是什么进程占用CPU使用率高。

     处理过程

    对于持续cpu过高的处理:

    1.在对应节点使用 “top”命令,然后键盘输入“C”,即按照CPU使用率排序进程。

    2.执行  ps -ef | grep  <CPU使用率高的PID>

    确认该进程的详细信息,确认该进程的日志。查看该组件日志,占用CPU高是否正常。

    对于偶发性的cpu过高的处理:

    1.在操作系统日志“/var/log/osinfo/statistics/ps.txt”会记录每2分钟执行一次ps命令的结果。

       但是该信息只记录了进程的基本信息

    2.使用如下命令,可以打印出CPU占用率最高的十个进程的信息

    ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head

    3.在对应节点创建如下shell文件checkcpu.sh

    #!/usr/bin/env bash

    logFile=/var/log/Bigdata/checkCpuUsage.log

    delayTime=30  # seconds between each excute, default value is 30 seconds

    while( true )

    do

        echo `date` >> $logFile

        echo "USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND " >> $logFile

        ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head >> $logFile

        sleep $delayTime

        echo " " >> $logFile

    done

    4.后台执行脚本

    在节点在后台执行如下shell文件

    chmd 700 /opt/checkcpu.sh

    nohup /opt/checkcpu.sh  > /dev/null  2>/dev/null  &

    5. 查看日志

    查看/var/log/Bigdata/checkCpuUsage.log 日志中,是否有打印CPU使用量高的进程的详细信息。

    6. 停止进程

    在节点执行“ps -ef | grep checkcpu.sh | grep -v grep” 找到该进程的pid,kill 即可。

     
  • 相关阅读:
    Tcp/ip 报文解析
    使用redis构建可靠分布式锁
    提高服务器程序性能的一些方法
    socket读写返回值的处理
    也写年终总结
    记录服务上线一年来的点点滴滴
    C++实现线程安全的单例模式
    一步一步实现读写锁
    从I/O复用谈epoll为什么高效
    同域SQL server 做镜像服务器遇到1418错误
  • 原文地址:https://www.cnblogs.com/xuanbjut/p/11647401.html
Copyright © 2011-2022 走看看