#!/bin/bash
#获取pid
read -p “输入要查询的pid:” pid
#通过循环持续将数据写入influxDB
while true; do
#查询jvm数据并写入jvm.txt文件
jstat -gcutil $pid | awk ‘NR!=1{printf “t_jvm,host=server S0=%f,S1=%f,E=%f,O=%f,M=%f,CCS=%f,YGC=%i,YGCT=%f,FGC=%i,FGCT=%f,GCT=%f\n”,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11;fflush();}’ > “/tmp/jvm.txt”;
#将数据写入influxDB
curl -i -XPOST ‘http://localhost:8086/write?db=data_68’ --data-binary @/tmp/jvm.txt;
#每2秒执行一次
sleep 2
done

本文介绍了一种使用Bash脚本监控JVM垃圾回收状态的方法,并通过curl命令将数据周期性地写入InfluxDB时间序列数据库。此脚本适用于服务器性能监控场景,通过读取用户输入的PID,持续收集jstat输出的JVM数据,格式化后存入临时文件,再将这些数据发送到本地运行的InfluxDB数据库。
254

被折叠的 条评论
为什么被折叠?



