linux系统中JVM调优监控的常用指令
前言
- 当服务器中CPU或内存负载过大,Java工程师就需要对其监控和定位,是线程死锁了还是内存溢出等等问题。
- 本篇文章记录一些关于在Linux系统中查看CPU、进程/线程、jvm堆栈信息等指令,方便后续查阅。
top
top是Linux系统中常用于看CPU、进程、内存运行指标的命令:
[root@localhost data/project]$ top
top - 11:17:42 up 177 days, 19:34, 6 users, load average: 6.58, 10.04, 9.68
Tasks: 145 total, 1 running, 144 sleeping, 0 stopped, 0 zombie
%Cpu(s): 19.2 us, 10.0 sy, 0.0 ni, 70.5 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
KiB Mem : 32780448 total, 4776344 free, 26326688 used, 1677416 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 5989168 avail MemPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12241 root 20 0 8525184 1.8g 14780 S 46.0 5.8 1124:54 java
……第一行系统参数: 11:17:42:系统当前时间 up 177 days, 19:34:系统的运行时间 6 users:系统的登录用户数 load average: 6.58, 10.04, 9.68:系统内1分钟、5分钟、15分钟的平均负载
- 第二行进程参数: 系统当前总进程145个 其中1个运行状态 144个睡眠状态 0个暂停状态 0个zombie僵尸状态
- 第三行CPU参数: us:用户态CPU占比19.2 sy:内核态CPU占比10.0 ni:改变nice进程的CPU占比0.0 id:空闲CPU占比70.5 wa:等待IO的CPU占比0.0 hi:硬中断CPU占比0.0 si:软中断CPU占比0.3 st:当前虚拟机中被其他虚拟机占用CPU占比0.0
注:在多CPU服务器中,默认展示所有CPU的平均值,按1可展示每个CPU的占比。
[root@localhost data/project]$ top
top - 11:17:42 up 177 days, 19:34, 6 users, load average: 6.58, 10.04, 9.68
Tasks: 145 total, 1 running, 144 sleeping, 0 stopped, 0 zombie
%Cpu0 : 21.6 us, 12.2 sy, 0.0 ni, 65.9 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
%Cpu1 : 20.5 us, 9.6 sy, 0.0 ni, 69.6 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
%Cpu2 : 25.6 us, 10.2 sy, 0.0 ni, 63.8 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
%Cpu3 : 20.0 us, 8.6 sy, 0.0 ni, 71.0 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
……第四/五行物理内存和磁盘内存参数: total:内存总量32780448k free:空闲内存4776344k used:占用内存26326688k buff/cache:系统缓存/page cache占用1677416k avail Mem:虚拟内存5989168k
- 注:系统优先使用物理内存,当物理内存不足就会使用磁盘内存,一般情况尽量使用物理内存以提升性能。
- 第六行进程详细参数: PID:进程id USER:操作用户 PR:进程优先级 NI:进程的nice值 VIRT:进程所占用的虚拟内存大小 RES:进程所占用的物理内存大小 SHR:进程所占用的共享内存大小 S:进程状态:R=Running,S=interruptible sleeping,D=uninterruptible sleeping,T=Stopped,Z=zombie %CPU:进程CPU占用比 %MEM:进程物理内存占用比 TIME+:进程使用后占用CPU累计时间 COMMAND:进程的运行命令
- 注:输入大写P可以对CPU占用率进行排序,输入大写M可以对物理内存占用比排序,输入大写H可以显示进程的线程信息
注:top -c 命令可以打印进程的完整运行命令
[root@localhost data/project]$ top -c
top - 14:05:54 up 177 days, 22:22, 6 users, load average: 9.02, 7.19, 6.26
Tasks: 146 total, 2 running, 144 sleeping, 0 stopped, 0 zombie
%Cpu(s): 24.2 us, 10.6 sy, 0.0 ni, 64.8 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
KiB Mem : 32780448 total, 3990592 free, 26324892 used, 2464964 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 5981456 avail MemPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12241 root 20 0 8525184 1.8g 14780 S 45.0 5.9 1201:04 java -Xmx2024m -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -jar java-demo.jar2 root 20 0 0 0 0 S 0.0 0.0 0:00.71 [kthreadd]
3 root 20 0 0 0
还没有评论,来说两句吧...