CPU瞬时冲高自动监测打印进程栈信息和线程ID脚本

背景:

1.生产环境某个应用CPU偶发瞬时冲高情况,每次持续2-5分钟,运维人员来不及立马定位原因

2.pod应用,没有添加到集成监控系统中,需要自己想办法监测

3.pod应用中不让安装crontab工具

脚本内容如下:

#!/bin/bash

while [ true ]

do

cpu=(top -bn 1\| sed -n '3p'\|awk '{print 2}')

echo "(date '+%Y%m%d%H%M%S'): 间隔10s检索CPU情况,CPU=cpu"

if [[ `expr $cpu \> 60` == 1 ]]; then

echo "cpu surge, find process, cpu=$cpu"

PACPU=((top -bn 1\|grep java\| sed -n '1,5p'\|awk '{print 1,$9}'))

echo "${PACPU[*]}"

len=${#PACPU[*]}

for ((i=0;i<$len;i+=2))

do

pid={PACPU\[i]}

tids=((top -bn 1 -p pid -H|sed -n '8,12p'|awk '{print $1}'))

cpu={PACPU\[i+1]}

file=pid-(date '+%Y%m%d%H%M%S').log

echo "print process pid, tids={tids[*]}, cpu=cpu, file=file"

for tid in ${tids[*]}

do

printf "nid=0x%x\n" tid \>\> file

done

jstack -l pid \>\> file

done

fi

sleep 10s

done

相关推荐
hsjcjh42 分钟前
Nodemailer使用教程:在Node.js中发送电子邮件
linux·运维·node.js
野生技术架构师1 小时前
一线大厂Java面试八股文全栈通关手册(含源码级详解)
java·开发语言·面试
廋到被风吹走1 小时前
【AI】Codex 多语言实测:Python/Java/JS/SQL 效果横评
java·人工智能·python
tERS ERTS1 小时前
MySQL中查看表结构
java
坊钰1 小时前
Java 死锁问题及其解决方案
java·开发语言·数据库
于先生吖2 小时前
SpringBoot+MQTT 无人健身房智能管控系统源码实战
java·spring boot·后端
不怕犯错,就怕不做2 小时前
linux 如何查看自己的帐号密码及samba的帐号和密码
linux·运维·服务器
地下核武2 小时前
Ubuntu 24.04 在线安装 Qt 6.10.2 后 Qt Creator 无法启动问题记录与解决
linux·qt·ubuntu
仍然.2 小时前
算法题目---模拟
java·javascript·算法
张3232 小时前
Linux 启动过程
linux·运维