文章目录
- 前言
- JVM - 辅助小工具
- 1. 实现
- 2. 效果
- 3. demo
前言
如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!
JVM - 辅助小工具
输出:
1. 实现
主要应用两个命令:
jstat -gcutil $pid
主要输出各个区域使用的百分比
jstat -gc $pid
显示与JVM垃圾回收相关的统计信息,包括新生代和老年代的回收情况,吞吐量,堆内存使用情况等,可以分析垃圾回收的频率和效率,优化JVM的内存配置。
2. 效果
3. demo
#!/bin/bash
error(){
echo "jvm_E:-1"
echo "jvm_EU:-1"
echo "jvm_O:-1"
echo "jvm_OU:-1"
echo "jvm_M:-1"
echo "jvm_MU:-1"
echo "jvm_YGC:-1"
echo "jvm_YGCT:-1"
echo "jvm_FGC:-1"
echo "jvm_FGCT:-1"
echo "jvm_thread:-1"
echo "BDEDF"
}
work(){
pid=$1
# 通过jstat命令获取当前java的参数
output1=$(jstat -gcutil $pid 2>/dev/null)
output2=$(jstat -gc $pid 2>/dev/null)
# 输出不为空时,输出所有需要项
if [ -z "$output1" ] || [ -z "$output2" ]; then
error
exit 1
fi
# 读取并处理 output1 的值
set -- $(echo "$output1" | sed -n '2p')
echo "jvm_E:$3"
echo "jvm_O:$4"
echo "jvm_M:$5"
# 读取并处理 output2 的值
set -- $(echo "$output2" | sed -n '2p')
echo "jvm_EU:$8"
echo "jvm_OU:${10}"
echo "jvm_YGC:${12}"
echo "jvm_YGCT:${13}"
echo "jvm_FGC:${14}"
echo "jvm_FGCT:${15}"
# 查询线程快照的tid的数量
num=$(jstack $pid | grep -c "tid=" | wc -l)
echo "jvm_thread:$num"
}
if [ -z "$1" ]; then
echo "请提供进程ID。"
exit 1
fi
work $1