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 &

四:现象

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

相关推荐
Zeku10 分钟前
20251130 - 详细解析Framebuffer应用编程中涉及到的API函数
linux·驱动开发·嵌入式软件·linux应用开发
保卫大狮兄13 分钟前
TPM 到底用在设备管理的哪个阶段?
大数据·运维
Xの哲學18 分钟前
Linux AQM 深度剖析: 拥塞控制
linux·服务器·算法·架构·边缘计算
遇见火星24 分钟前
Docker Compose 实战教程,理解Docker Compose核心概念,学会编写 compose.yml,掌握常用命令!
运维·docker·容器·compose
今晚务必早点睡24 分钟前
Redis——快速入门第六课:Redis 运维 & 排错实战
运维·redis·bootstrap
原神启动126 分钟前
Docker(二)—— Docker容器操作
运维·docker·容器
你什么冠军?29 分钟前
Docker
运维·容器
梦想的旅途229 分钟前
RVA与基址偏移在自动化执行中的稳定性研究
运维·自动化·企业微信·rpa
lifejump33 分钟前
Pikachu | SSRF
服务器·web安全·安全性测试
郝学胜-神的一滴38 分钟前
Linux 下循环创建多线程:深入解析与实践指南
linux·服务器·c++·程序人生·算法·设计模式