查看链接占用情况:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
查看进程中线程cpu和内存占用情况: top -H -p <pid>
将10进制转换为16进制: printf "0x%x\n" 6619
生成当前进程Thread情况: jstack <pid> > 11.txt
# jstat -gc 9582 1000
S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT
1024.0 1024.0 0.0 0.0 8192.0 7933.3 42108.0 23401.3 20480.0 19990.9 157 0.274 40 1.381 1.654
jstat命令的最后一个参数是每个输出的时间间隔。每隔一秒就会打印出内存和垃圾收集数据。
让我们一起来对每一列的意义进行逐一了解:
S0C和S1C:这一列展示了Survivor0和Survivor1区的当前大小(单位KB)。
S0U和S1U:这一列展示了当前Survivor0和Survivor1区的使用情况(单位KB)。注意:无论任何时候,总会有一个Survivor区是空着的。
EC和EU:这些列展示了Eden区当前空间大小和使用情况(单位KB)。注意:EU的大小一直在增大。而且只要大小接近EC时,就会触发Minor GC并且EU将会减小。
OC和OU:这些列展示了年老代当前空间大小和当前使用情况(单位KB)。
PC和PU:这些列展示了Perm Gen(永久代)当前空间大小和当前使用情况(单位KB)。
YGC和YGCT:YGC这列显示了发生在年轻代的GC事件的数量。YGCT这列显示了在年轻代进行GC操作的累计时间。注意:在EU的值由于minor GC导致下降时,同一行的YGC和YGCT都会增加。
FGC和FGCT:FGC列显示了发生Full GC事件的次数。FGCT显示了进行Full GC操作的累计时间。注意:相对于年轻代的GC使用时间,Full GC所用的时间长很多。
GCT:这一列显示了GC操作的总累计时间。注意:总累计时间是YGCT和FGCT两列所用时间的总和(GCT=YGCT+FGCT)。
jstat的优点,我们同样可以在没有GUI的远程服务器上运行jstat。注意:我们是通过 -Xmn10m 选项来指定S0C、S1C和EC的总和为10m的。
JDK8参数介绍:
S0C和S1C:第一个和第二个幸存区的大小
S0U和S1U:第一个和第二个幸存区的使用大小
EC和EU:伊甸园区的大小、伊甸园区的使用大小
OC和OU:老年代大小、老年代使用大小
MC和MU:方法区大小、方法区使用大小
CCSC和CCSU:压缩类空间大小、压缩类空间使用大小
YGC:年轻代垃圾回收次数
YGCT:年轻代垃圾回收消耗时间
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间
# jstat -gcutil 6608 1000
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
0.00 0.00 100.00 99.98 95.89 93.14 1910 92.417 467 4775.453 4867.870
# jmap -histo:live 6608 |more
num #instances #bytes class name
----------------------------------------------
1: 21939550 1443252384 [C
2: 22234266 533622384 java.lang.String
…………
jvm参数优化
建议:-XX:+UseParNewGC -XX:+UseConcMarkSweepGC
jvisualvm插件安装
第一执行网址: https://visualvm.github.io/pluginscenters.html
第二找到对应的jdk,我是JDK7选择第二个,打开
第三步复制上面那个catalog URL地址。
第四部点击设置,编辑,把复制的路径放入URL中,点击确定。
自带工具jmap和jstack 为什么会"well-known file is not secure"
原因:启动进程用户和当前执行命令用户不一致,切换用户即可;
Java内存泄漏分析系列之三:jstat命令的使用及VM Thread分析
https://www.javatang.com/archives/2017/10/20/12131956.html
【JVM调优系列】----CPU过高的分析与解决方案
https://blog.csdn.net/zlts000/article/details/78570903
java 内存泄露
https://my.oschina.net/songhongxu/blog/204659
深入了解JAVA虚拟机和JVisualVM简单使用
https://blog.csdn.net/mike_caoyong/article/details/6994217
Java内存与垃圾回收调优
http://www.importnew.com/14086.html
linux修改open files数
https://www.cnblogs.com/chenpingzhao/p/5563602.html
java高分局之jstat命令使用
https://blog.csdn.net/maosijunzi/article/details/46049117
jstat查看gc情况
https://blog.csdn.net/liuxiao723846/article/details/51271574