Linux Perf Analysis in 60s
Copy from Brendan Gregg
1、uptime
作用:用于显示系统的负载平均值和运行时间。它提供了关于系统运行了多长时间以及系统在最近1分钟、5分钟和15分钟的平均负载的信息。
[root@VM-8-7-centos ~]# uptime 15:02:48 up 35 days, 3:35, 2 users, load average: 0.00, 0.04, 0.05
日志说明:
2、dmesg -T | tail
作用:查看系统内核消息的最后几行,并以可读的时间格式显示。用于了解系统最近的一些事件和错误信息。
命令说明:
dmesg
命令用于查看系统的内核消息。-T
选项用于以可读的时间格式显示消息。| tail
表示将dmesg -T
的输出通过管道传递给tail
命令,tail
命令用于显示输出的最后几行(默认是最后 10 行)。
3、vmstat -1
作用:用于实时查看系统的虚拟内存统计信息,每秒钟输出一次统计结果。
日志说明:
4、mpstat -P ALL 1
作用:用于在 Linux 系统中每秒钟显示所有 CPU 核心的统计信息。
命令说明:
日志说明:
Linux 3.10.0-1160.108.1.el7.x86_64 (VM-8-7-centos) 09/21/2024 _x86_64_ (2 CPU) 03:15:47 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 03:15:48 PM all 0.00 0.00 0.50 0.00 0.00 0.00 0.00 0.00 0.00 99.50 03:15:48 PM 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 03:15:48 PM 1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 03:15:48 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 03:15:49 PM all 1.00 0.00 1.00 1.50 0.00 0.00 0.00 0.00 0.00 96.50 03:15:49 PM 0 1.00 0.00 1.00 2.00 0.00 0.00 0.00 0.00 0.00 96.00 03:15:49 PM 1 1.00 0.00 1.00 2.00 0.00 0.00 0.00 0.00 0.00 96.00
接下来的表格中,每一行表示一个时间点的统计信息:
5、pidstat 1
作用:用于监控 Linux 系统中进程统计信息的工具。它可以提供关于进程的 CPU 使用情况、内存使用情况、I/O 情况以及上下文切换等信息。
日志说明:
[root@VM-8-7-centos ~]# pidstat 1 Linux 3.10.0-1160.108.1.el7.x86_64 (VM-8-7-centos) 09/21/2024 _x86_64_ (2 CPU) 03:17:53 PM UID PID %usr %system %guest %CPU CPU Command 03:17:54 PM 0 2344 0.99 0.00 0.00 0.99 1 barad_agent 03:17:54 PM 0 16424 0.99 0.00 0.00 0.99 0 YDService 03:17:54 PM UID PID %usr %system %guest %CPU CPU Command 03:17:55 PM 0 16424 0.00 1.00 0.00 1.00 0 YDService
接下来的表格中,每一行表示一个时间点的进程统计信息:
根据给出的数据,在 03 : 17 : 53 PM 这个时间点,有两个进程被显示:
在 03 : 17 : 54 PM 这个时间点,同样显示了这两个进程,barad_agent
在用户空间占用了 0.99% 的 CPU,YDService
在用户空间占用了 0.99% 的 CPU。在 03 : 17 : 55 PM 这个时间点,YDService
在系统空间占用了 1.00% 的 CPU,总的 CPU 使用率为 1.00%。总的来说,这段时间内,barad_agent
和 YDService
这两个进程在消耗 CPU 资源
6、iostat -xz 1
作用:用于监控系统输入/输出设备和 CPU 使用情况的命令,属于 sysstat
工具包的一部分。
日志说明:
[root@VM-8-7-centos ~]# iostat -xz 1 Linux 3.10.0-1160.108.1.el7.x86_64 (VM-8-7-centos) 09/21/2024 _x86_64_ (2 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.49 0.00 0.58 0.20 0.00 98.73 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util vda 0.00 7.24 0.01 6.81 0.36 62.33 18.37 0.01 1.01 5.30 1.00 0.79 0.54 scd0 0.00 0.00 0.00 0.00 0.03 0.00 163.80 0.00 0.72 0.72 0.00 0.35 0.00 avg-cpu: %user %nice %system %iowait %steal %idle 0.51 0.00 1.53 0.00 0.00 97.96 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util avg-cpu: %user %nice %system %iowait %steal %idle 0.50 0.00 2.01 0.00 0.00 97.49
接下来的部分分为两部分:
7、free -m
作用:用于显示系统内存的使用情况,单位为兆字节(MB)。
日志说明:
[root@VM-8-7-centos ~]# free -m total used free shared buff/cache available Mem: 1998 239 172 0 1586 1566 Swap: 0 0 0
8、sar -n DEV 1
作用:每秒钟打印一次网络的统计信息。
日志说明:
[root@VM-8-7-centos ~]# sar -n DEV 1 Linux 3.10.0-1160.108.1.el7.x86_64 (VM-8-7-centos) 09/21/2024 _x86_64_ (2 CPU) 03:28:06 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 03:28:07 PM br-0e1f084cebba 0.00 0.00 0.00 0.00 0.00 0.00 0.00 03:28:07 PM eth0 7.00 6.00 0.59 1.02 0.00 0.00 0.00 03:28:07 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 03:28:07 PM docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 03:28:07 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 03:28:08 PM br-0e1f084cebba 0.00 0.00 0.00 0.00 0.00 0.00 0.00 03:28:08 PM eth0 2.00 2.00 0.09 0.26 0.00 0.00 0.00 03:28:08 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 03:28:08 PM docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
接下来的表格中,每一行表示一个时间点的网络设备统计信息:
根据给出的数据,在 03 : 28 : 06 PM 这个时间点,网络接口 br - 0e1f084cebba
、eth0
、lo
和 docker0
的统计信息如下:
在 03 : 28 : 07 PM 这个时间点,各个网络接口的统计信息与上一个时间点类似。在 03 : 28 : 08 PM 这个时间点,eth0
每秒接收 2 个数据包,发送 2 个数据包,接收 0.09 千字节,发送 0.26 千字节,其他接口的统计信息仍为 0。总的来说,这段时间内这些网络接口的流量相对较低。
9、sar -n TCP,ETCP 1
作用:每秒钟显示一次 TCP 和 ETCP的统计信息。
日志说明:
[root@VM-8-7-centos ~]# sar -n TCP,ETCP 1 Linux 3.10.0-1160.108.1.el7.x86_64 (VM-8-7-centos) 09/21/2024 _x86_64_ (2 CPU) 03:30:53 PM active/s passive/s iseg/s oseg/s 03:30:54 PM 1.00 0.00 7.00 6.00 03:30:53 PM atmptf/s estres/s retrans/s isegerr/s orsts/s 03:30:54 PM 0.00 0.00 0.00 0.00 0.00 03:30:54 PM active/s passive/s iseg/s oseg/s 03:30:55 PM 0.00 0.00 1.00 1.00 03:30:54 PM atmptf/s estres/s retrans/s isegerr/s orsts/s 03:30:55 PM 0.00 0.00 1.00 0.00 0.00
根据给出的数据,在 03:30:53 PM 这个时间点:
在 03:30:54 PM 这个时间点:
10、top
作用:实时显示系统中各个进程的资源占用情况,包括 CPU 使用率、内存使用情况、进程状态等信息。
日志说明:
此外,top
命令还提供了一些交互命令,可以用于排序、筛选进程、查看进程详细信息等操作。例如,按下P
键可以按照 CPU 使用率对进程进行排序,按下M
键可以按照内存使用率进行排序,按下K
键可以杀死某个进程等。