JVM性能优化监控

1. sar 监控CPU

一秒钟采样一次,持续100次

sar -u -o zhou 1 100

03:26:43 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
03:26:44 PM     all      0.50      0.00      1.01      0.00      0.00     98.49
03:26:45 PM     all      0.00      0.00      0.50      0.00      0.00     99.50
03:26:46 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
03:26:47 PM     all      0.50      0.00      0.50      0.00      0.00     98.99
03:26:48 PM     all      0.00      0.00      0.50      0.00      0.50     98.99
03:26:49 PM     all      0.51      0.00      0.00      0.51      0.00     98.98
03:26:50 PM     all      0.50      0.00      0.50      0.00      0.00     99.00

CPU      CPU 标识符;“all”表示所有 CPU 
 
%user    用户进程使用的 CPU 百分比。Oracle 进程属于这一类。 
 
%nice    在 nice 优先级下执行的 CPU 利用率百分比 
 
%system  执行系统进程的 CPU 百分比 
 
%iowait  等待进行 I/O 操作的 CPU 百分比 
 
%idle    等待工作的 CPU 空闲百分比 

主要注意%wio和%idle,

%wio的值过高,表示硬盘存在I/O瓶颈,

%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,
此时应加大内存容量。

%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。

2. jstat -gc pid 50 2

50ms查询一次进程PID的垃圾收集的状况,一共查询两次

3. sar -r

kbmemfree    此时可用内存的数量,以 KB 为单位 
 
kbmemused    此时已使用的内存数量,以 KB 为单位 
 
%memused     已使用内存的百分比 
 
kbbuffers    用作缓冲区的内存百分比 
 
kbcached     用作缓存的内存百分比 
 
kbswpfree    此时可用交换区空间的大小,以 KB 为单位 
 
kbswpused    此时已使用的交换空间大小,以 KB 为单位 
 
%swpused     此时已使用交换区的百分比 
 
kbswpcad     此时缓存的交换区大小,以 KB 为单位 

4

 
-P   特定 CPU 
 
-d   磁盘 
 
-r   内存 
  
-B   分页 
 
-W   交换 
 
-n   网络

5.

jmap -dump:<dump-options> <pid>

<dump-options>表示dump选项,<pid>表示需要dump的java应用程序的进程ID

dump-options可以有以下三种参数,参数之间用逗号隔开:

live,只dump活动的object,如果没有指定,表示dump所有object

format=b,字节流格式

file=<file>,<file>是转储文件的保存路径

下面是dump命令的一个例子:

jmap -dump:format=b,file=heap.bin 8023

你可能感兴趣的:(性能优化)