linux间隔记录服务器的CPU占用率TOP10的进程

一:原因

最近线上服务器上总数间隔出现CPU占用过高导致服务访问异常,查看服务运行日志和系统日志没有找到具体由哪个进程导致的,于是规划写一个间隔监控CPU占用率最高的脚本来监控是哪个进程导致的CPU过高

二:间隔记录CPU占用率TOP的sh脚本

创建一个sh脚本文件log_cpu_process.sh

复制代码
#!/bin/bash
 
# 设置日志文件
LOG_FILE="/data/log/log.log"
 
# 设置间隔时间(秒)
SLEEP_TIME=10
 
# 循环记录信息
while true; do
  # 记录当前时间戳
  timestamp=$(date +"%Y-%m-%d %H:%M:%S")
  
  # 使用ps命令获取CPU使用率前10的进程,并输出到日志文件
  ps H -eo pid,ppid,%mem,%cpu,cmd --sort=-%cpu | head -10 | awk '{print "'"$timestamp"', "$0}' >> $LOG_FILE

  # 休眠指定时间
  sleep $SLEEP_TIME
done

如上表示没间隔10秒将CPU占有率TOP10的进程信息存储到指定文件中

三:执行脚本

将log_cpu_process.sh文件执行可执行权限

复制代码
chmod +x log_cpu_process.sh

运行脚本

复制代码
./log_cpu_process.sh

以后台进程方式运行脚本

复制代码
nohup log_cpu_process.sh > /dev/null 2>&1 &

四:现象

执行脚本后我们就可以在对应目录下看到生成的日志记录文件

相关推荐
赖small强5 分钟前
【Linux驱动开发】Linux SDIO 底层原理与实现细节详解
linux·驱动开发·sdio
晨非辰8 分钟前
【数据结构初阶系列】归并排序全透视:从算法原理全分析到源码实战应用
运维·c语言·数据结构·c++·人工智能·python·深度学习
llxxyy卢2 小时前
通关upload-labs(14-21)加分析源码
linux·运维·服务器
JosieBook3 小时前
【Rust】基于Rust 设计开发nginx运行日志高效分析工具
服务器·网络·rust
e***98574 小时前
Nginx搭建负载均衡
运维·nginx·负载均衡
电话交换机IPPBX-3CX5 小时前
电话交换机IPPBX-3CX的呼叫记录导出
运维·服务器·网络
松涛和鸣5 小时前
11.C 语言学习:递归、宏定义、预处理、汉诺塔、Fibonacci 等
linux·c语言·开发语言·学习·算法·排序算法
C-DHEnry6 小时前
Linux 不小心挂载错磁盘导致无法启动系统咋办
linux·运维·服务器·雨云
JosieBook7 小时前
【若依框架】若依前后端分离项目怎么部署到服务器?
运维·服务器
q***7487 小时前
Nginx环境安装
运维·nginx