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

相关推荐
mCell44 分钟前
从删库到跑路?这50个Linux命令能保你职业生涯
linux·windows·macos
武子康1 小时前
Java-80 深入浅出 RPC Dubbo 动态服务降级:从雪崩防护到配置中心秒级生效
java·分布式·后端·spring·微服务·rpc·dubbo
杰克逊的日记1 小时前
GPU运维常见问题处理
linux·运维·gpu
誰能久伴不乏2 小时前
Linux系统调用概述与实现:深入浅出的解析
linux·运维·服务器
程序员学习随笔2 小时前
Linux进程深度解析(2):fork/exec写时拷贝性能优化与exit资源回收机制(进程创建和销毁)
linux·运维·服务器
mmoyula2 小时前
【RK3568 PWM 子系统(SG90)驱动开发详解】
android·linux·驱动开发
-SGlow-2 小时前
MySQL相关概念和易错知识点(2)(表结构的操作、数据类型、约束)
linux·运维·服务器·数据库·mysql
代码改变世界ctw3 小时前
Linux内核设计与实现 - 第14章 块I/O层
linux·运维·服务器
YuTaoShao3 小时前
【LeetCode 热题 100】131. 分割回文串——回溯
java·算法·leetcode·深度优先
源码_V_saaskw4 小时前
JAVA图文短视频交友+自营商城系统源码支持小程序+Android+IOS+H5
java·微信小程序·小程序·uni-app·音视频·交友