首页 > 系统服务 > 详细

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

时间:2019-10-10 14:01:48      阅读:106      评论:0      收藏:0      [点我收藏+]

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

 

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

原文:https://www.cnblogs.com/xuanbjut/p/11647401.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!