linux上查看java服务器信息的命令 j地图 jstack jinfo等等
网上这方便的介绍太多太多,本文章主要是个人为了好记性不如烂笔头的古训所写,以方便以后查阅,不喜勿喷。
1.netstat 查看linux服务器网络连接的连接数以及相关信息
netstat -nat|grep -i "80" |wc -l 查看所有80端口的连接数
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n 对连接的IP按连接数量进行排序
查看TCP连接状态
- netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
- netstat -an | awk '/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}'
- netstat -an | awk '/^tcp/ {++state[$NF]}; END {for(key in state) print key,"\t",state[key]}'
- netstat -an | awk '/^tcp/ {++arr[$NF]};END {for(k in arr) print k,"\t",arr[k]}'
- netstat -an |awk '/^tcp/ {print $NF}'|sort|uniq -c|sort -rn
- netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c
2.jstat 这是jdk命令中比较重要,也是相当实用的一个命令,可以观察到classloader,compiler,gc相关信息
具体参数如下:
-class:统计class loader行为信息
-compile:统计编译行为信息
-gc:统计jdk gc时heap信息
-gccapacity:统计不同的generations(不知道怎么翻译好,包括新生区,老年区,permanent区)相应的heap容量情况
-gccause:统计gc的情况,(同-gcutil)和引起gc的事件
-gcnew:统计gc时,新生代的情况
-gcnewcapacity:统计gc时,新生代heap容量
-gcold:统计gc时,老年区的情况
-gcoldcapacity:统计gc时,老年区heap容量
-gcpermcapacity:统计gc时,permanent区heap容量
-gcutil:统计gc时,heap情况
-printcompilation:不知道干什么的,一直没用过。
示例:
jstat -class 2083 1000 10 (每隔1秒监控一次,一共做10次) load class
jstat -gc 2083 2000 20(每隔2秒监控一次,共做10) jvm使用情况
jstat -gccause 2083 5000 (每隔5秒监控一次) jvm使用情况
3.jmap
观察运行中的jvm物理内存的占用情况。
参数如下:
-heap:打印jvm heap的情况
-histo:打印jvm heap的直方图。其输出信息包括类名,对象数量,对象占用大小。
-histo:live :同上,但是只答应存活对象的情况
-permstat:打印permanent generation heap情况
命令使用:
jmap -heap 2083
4.jstack