• linux下抓取tomcat相关内存、线程、文件句柄等快照,用于故障排除。


    以下脚本推荐放在定时任务里,写好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,"	",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
  • 相关阅读:
    Java SE(2)
    Java SE(1)
    第二次作业
    Markdown 进阶
    关于主题
    Markdown入门指南
    网络游戏架构与微服务架构简单对比
    微服务框架的存储架构
    轻量级微服务框架的通信架构
    页面静态化
  • 原文地址:https://www.cnblogs.com/passedbylove/p/10948930.html
Copyright © 2020-2023  润新知