先使用 ps 命令找出目标进程ID:
[root@192 ~] ps -ef | grep java
root 2931 2335 43 22:20 pts/0 00:00:01 java HelloWorldApp
root 2947 2378 0 22:20 pts/1 00:00:00 grep --color=auto java
我们需要分析的Java进程ID是 2931,下一步使用 pidstat 进行解析。
采集CPU数据
每1秒采集一次数据,目标PID为 2931
[root@192 ~] pidstat -u 1 -p 2931
Linux 3.10.0-514.el7.x86_64 (192.168.25.131) 2020年12月29日 _x86_64_ (4 CPU)
22时20分41秒 UID PID %usr %system %guest %CPU CPU Command
22时20分42秒 0 2931 15.00 26.00 0.00 41.00 0 java
22时20分43秒 0 2931 16.00 24.00 0.00 40.00 0 java
22时20分44秒 0 2931 15.00 24.00 0.00 39.00 0 java
22时20分45秒 0 2931 16.00 27.00 0.00 43.00 0 java
22时20分46秒 0 2931 13.00 26.00 0.00 39.00 0 java
22时20分47秒 0 2931 11.00 28.00 0.00 39.00 0 java
22时20分48秒 0 2931 14.00 24.00 0.00 38.00 0 java
采集内存数据
同样的,每隔1秒采集一次数据
[root@192 ~] pidstat -r 1 -p 2931
Linux 3.10.0-514.el7.x86_64 (192.168.25.131) 2020年12月29日 _x86_64_ (4 CPU)
22时31分34秒 UID PID minflt/s majflt/s VSZ RSS %MEM Command
22时31分35秒 0 2931 0.99 0.00 3404120 60248 1.56 java
22时31分36秒 0 2931 0.00 0.00 3404120 60248 1.56 java
22时31分37秒 0 2931 0.00 0.00 3404120 60248 1.56 java
22时31分38秒 0 2931 1.00 0.00 3404120 60248 1.56 java
22时31分39秒 0 2931 0.00 0.00 3404120 60248 1.56 java
22时31分40秒 0 2931 0.00 0.00 3404120 60248 1.56 java
22时31分41秒 0 2931 0.00 0.00 3404120 60248 1.56 java
22时31分42秒 0 2931 0.99 0.00 3404120 60248 1.56 java
采集磁盘使用情况
格式:pidstat -d 采集间隔秒数 -p 进程号
[root@192 ~] pidstat -d 2 -p 2404
Linux 3.10.0-514.el7.x86_64 (192.168.25.131) 2020年12月30日 _x86_64_ (4 CPU)
20时51分19秒 UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
20时51分21秒 0 2404 0.00 0.00 0.00 java
20时51分23秒 0 2404 0.00 0.00 0.00 java
20时51分25秒 0 2404 0.00 0.00 0.00 java
20时51分27秒 0 2404 0.00 4.00 0.00 java
20时51分29秒 0 2404 0.00 0.00 0.00 java