以下脚本推荐放在定时任务里,写好cron表达式,在不影响业务系统的情况下dump一些信息分析系统性能瓶颈以及故障排除。
因为每次dump的时候jvm会暂停(几秒到几十秒不等)。所以在生产系统使用时慎用。因此遭成的任何损失与本博主无关。
crontab -e
* 21-8/1 * * * /var/erp/data/dump.sh >> /var/erp/data/dump.log 2>&1 (脚本未经验证)
dump.sh #!/bin/bash PID=`ps -ef|grep 'org.apache.catalina.startup.Bootstrap'|grep tomcat|awk '{print $2}'` CURRENT=$(date +%Y-%m-%d-%H.%M.%S) STAT_DIR=/var/erp/jvmstat jmap -dump:format=b,file=$STAT_DIR/mem-dump-$CURRENT.bin $PID jstack -l $PID > $STAT_DIR/jstack-$CURRENT.txt #file handlers ls /proc/$PID/fd |wc -l > $STAT_DIR/file-handler-$CURRENT.txt lsof -p $PID >> $STAT_DIR/file-handler-$CURRENT.txt #thread count ls /proc/$PID/task |wc -l > $STAT_DIR/threads-$CURRENT.txt #network netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}' > $STAT_DIR/network-$CURRENT.txt netstat -t >> $STAT_DIR/network-$CURRENT.txt #mem cat /proc/$PID/status > $STAT_DIR/proc-mem-$CURRENT.txt
本博客文章绝大多数为原创,少量为转载,代码经过测试验证,如果有疑问直接留言或者私信我。
创作文章不容易,转载文章必须注明文章出处;如果这篇文章对您有帮助,点击右侧打赏,支持一下吧。
创作文章不容易,转载文章必须注明文章出处;如果这篇文章对您有帮助,点击右侧打赏,支持一下吧。