• Linux 寻找CPU使用率高进程


    一、CPU使用率持续较高
    1.在对应节点使用 “top”命令,然后键盘输入“P”,即按照CPU使用率排序进程。
    2.执行ps -ef | grep <CPU使用率高的PID>。
    确认该进程的详细信息,确认该进程的日志。查看该组件日志,占用CPU高是否正常。
    3.使用如下命令,可以打印出CPU占用率最高的十个进程的信息。
    ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head

    二、CPU使用率偶现较高
    1. 使用如下命令,可以打印出CPU占用率最高的十个进程的信息。
    ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
    2. 在对应节点创建如下shell文件。
    checkcpu.sh ,其中logFile,是日志打印文件,delayTime 是每次执行的间隔,单位秒。
    #!/usr/bin/env bash
    logFile=/var/log/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
    3.  后台执行脚本。

    在节点在后台执行如下shell文件:
    chmd 700 /opt/checkcpu.sh
    nohup /opt/checkcpu.sh > /dev/null 2>/dev/null &
    4. 查看日志。
    查看“/var/log/checkCpuUsage.log”日志中,是否有打印CPU使用量高的进程的详细信息。

    如果查询出的是java进程,常见因为内存配置过小导致频繁垃圾回收,引起CPU使用率高

    5.停止检查脚本进程。
    在节点执行ps -ef | grep checkcpu.sh | grep -v grep,找到该进程的pid,kill 即可。

  • 相关阅读:
    一种查找中值的方法——Rank_Select
    VS 2008 下安装OpenCV 2.3.0 .【转载】
    【转】OpenCV HOGDescriptor 参数图解 .
    VLFeat——SIFT图像特征提取(VC++实现)【转载】
    KD Tree
    【转】让任务管理器画出正弦曲线
    VLFeatmean sift开源库【配置】【转载】
    《程序员求职成功路》之字符串__strtok函数相关理解【转载】
    堆排序
    opencv imread
  • 原文地址:https://www.cnblogs.com/dotagg/p/7692081.html
Copyright © 2020-2023  润新知