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 &

四:现象

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

相关推荐
小尧嵌入式几秒前
【Linux开发五】条件变量|信号量|生产者消费者模型|信号概念和常见信号|信号的使用和处理
linux·运维·服务器·开发语言·c++·嵌入式硬件
小林up5 分钟前
Ubuntu访问不了Git解决办法
linux·git·ubuntu
optimistic_chen6 分钟前
【Docker入门】Docker Image(Docker 镜像)
linux·运维·docker·容器·镜像
十月南城9 分钟前
高可用的三件事——无状态化、水平扩展与故障转移的协同设计
运维·web安全·微服务·云计算·xss
食咗未11 分钟前
Linux BT656转AHD显示调试记录
linux·驱动开发·显示屏·ahd out
爱莉希雅&&&16 分钟前
Docker 超详细全量笔记(含参数解释)
linux·运维·服务器·笔记·docker·容器
重生之绝世牛码17 分钟前
Linux软件安装 —— ClickHouse集群安装(集成Zookeeper)+ chproxy负载均衡
大数据·linux·数据库·clickhouse·软件安装·clickhouse集群安装·clickhouse负载均衡
信创天地19 分钟前
信创运维核心技术:国产化软硬件适配与故障排查全解析
运维·人工智能·开源·dubbo·运维开发·risc-v
学烹饪的小胡桃19 分钟前
WGCLOUD使用指南 - 如何监控交换机防火墙的数据
运维·服务器·网络
Howrun77720 分钟前
Linux网络编程_常见API
linux·运维·网络