Linux防火墙管理&Jstack线程堆栈信息查看

一、Linux防火墙管理

开启防火墙端口,每次根据需要替换掉端口 3306
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT


查看端口 3306 是否监听
iptables -L -nv | grep 3306

Linux防火墙管理&Jstack线程堆栈信息查看

 

二、线程堆栈信息查看

结合top和jstack找出占用cpu最高的堆栈信息:
1,使用命令top -p <pid> ,显示你的Java进程的内存情况,pid是你的java进程号,比如29490

比如,我需要查看服务器上tomcat的进程ID,ps aux|grep tomcat 此时的进程ID为29490

Linux防火墙管理&Jstack线程堆栈信息查看

Linux防火墙管理&Jstack线程堆栈信息查看
2,按H(大写),获取每个线程的内存情况 

Linux防火墙管理&Jstack线程堆栈信息查看
3,找到内存和cpu占用最高的线程pid,比如29497
4,执行printf "%x\n"  29497 (16进制输出进程) 得到 7339 ,此为线程id的十六进制

Linux防火墙管理&Jstack线程堆栈信息查看
5,执行 jstack 29490|grep -A 10 7339,得到线程堆栈信息中7339这个线程所在行的后面10行 ,29490位进程ID,本图展示的是后台GC线程在工作。

Linux防火墙管理&Jstack线程堆栈信息查看
6,查看对应的堆栈信息找出可能存在问题的代码

三、查看磁盘使用情况

df -h

Linux防火墙管理&Jstack线程堆栈信息查看

四、查看指定端口使用情况

lsof -i:8080