linux下JVM调优指令

1通top查看,占用内存情况

1、用命令top查看java进程的内存和cpu占用情况。对应的pid

linux下JVM调优指令_第1张图片

 

2.查看该top -Hp pid下线程对应的系统占用情况。top -Hp 14372

linux下JVM调优指令_第2张图片

线程 14386占用了cpu

jstack pid |grep tid -A 30 查看该线程堆栈信息

将需要的线程ID转换为16进制格式:printf "%x\n" 14386

jstack 14372 |grep 3832 -A 30

 

linux下JVM调优指令_第3张图片

 

3、jmap -histo  pid查询指定java进程的所有对象使用内存情况。

 

4、ps -mp pid -o THREAD,tid,time  查询所有线程列表

 

 

 

 

查看tcp连接数 netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

如果服务器保持了大量CLOSE_WAIT状态,简单来说CLOSE_WAIT数目过大是由于被动关闭连接处理不当导致的

大量TIME_WAIT可以调整可以增加端口数,cat /proc/sys/net/ipv4/ip_local_port_range

 

 

 

iostat -d -k 2查看硬盘IO情况

linux下JVM调优指令_第4张图片

 

GC调优,关键是查看GC的频率,新生代内存Eden和老年代Survivor之间寻找一个平衡

关键时老年代,不能太大,太大full gc会导致系统停顿时间长,如果一定要大可以考虑单例转多例

 

 

 

  
 

 

你可能感兴趣的:(linux下JVM调优指令)