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 &

四:现象

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

相关推荐
zhojiew2 分钟前
在Lambda函数中编写和部署MCP服务器的方法
运维·ai·aws
liulilittle5 分钟前
ISIF-COP香港服务器,启用OPENPPP2 VMUX全双工
运维·服务器·网络·信息与通信·通信
杜子不疼.15 分钟前
【Linux】基础IO(四):用户缓冲区深度解析
linux·运维·服务器·开发语言
海盗123416 分钟前
Linux下 vim(vi)编辑器的使用-各种模式介绍
linux·编辑器·vim
春日见17 分钟前
三分钟安装window Docker,并与Ubuntu(WSL)建立连接
linux·人工智能·windows·驱动开发·机器学习·docker·容器
BullSmall18 分钟前
CloudDR RPO/RTO 定义表 + 冷 / 温 / 热备混合部署清单
运维·系统架构
头发还没掉光光18 分钟前
IPV4地址不足,私有IP无法访问,使用NAT技术、内网穿透与打洞逐个解决
linux·网络·网络协议·tcp/ip
HIT_Weston20 分钟前
110、【Ubuntu】【Hugo】搭建私人博客:搜索功能(六)
linux·运维·ubuntu
90的程序爱好者22 分钟前
Linux 常用命令分类整理
linux·运维·服务器
坐怀不乱杯魂25 分钟前
Linux - 线程的同步与互斥
linux·c++