• 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 即可。

  • 相关阅读:
    iOS 即时通讯 + 仿微信聊天框架 + 源码
    Accelerate Framework in Swift
    最新 iOS 框架整体梳理(三)
    最新 iOS 框架整体梳理(二)
    单元测试
    iOS
    画个Shape留意到的东西
    deleteSections & deleteRows 我踩的坑
    常用开发技巧系列(六)
    程序员该如何提高睡眠质量?—程序媛233酱的助攻~
  • 原文地址:https://www.cnblogs.com/dotagg/p/7692081.html
Copyright © 2020-2023  润新知