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

     
  • 相关阅读:
    android笔记:ListView及ArrayAdapter
    android示例:一个简单的登陆程序
    Android笔记:RelativeLayout
    Android笔记:ContextMenu
    java swing示例
    java多线程与并发笔记
    java常用代码
    java学习笔记整理
    Android笔记:intent
    Android笔记:Button
  • 原文地址:https://www.cnblogs.com/xuanbjut/p/11647401.html
Copyright © 2020-2023  润新知