Linux Performance Analysis

发布时间 2023-10-21 21:47:22作者: LambdaQ

Linux Performance Analysis

如何在 30s 内定位系统出现的问题,可以使用如下 10 个命令:

uptime
dmesg | tail
vmstat 1
mpstat -P ALL 1
pidstat 1
iostat -xz 1
free -m
sar -n DEV 1
sar -n TCP,ETCP 1
top

uptime

uptime 能获取系统平均负载 (Load average)。负载是当前 CPU 的工作量,简单讲就是进程队列的长度。Load average是一段时间(1min、5min和15min)内平均负载。

dmes | tail

这将查看最近10条系统消息(如果有)。查找以下错误会导致性能问题。比如 oom killer,TCP 丢弃一个请求。

vmstat 1

$ vmstat 1
procs ---------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
34  0    0 200889792  73708 591828    0    0     0     5    6   10 96  1  3  0  0
32  0    0 200889920  73708 591860    0    0     0   592 13284 4282 98  1  1  0  0
32  0    0 200890112  73708 591860    0    0     0     0 9501 2154 99  1  0  0  0
32  0    0 200889568  73712 591856    0    0     0    48 11900 2459 99  0  0  0  0
32  0    0 200890208  73712 591860    0    0     0     0 15898 4840 98  1  1  0  0
^C

vmstat是虚拟内存统计信息的工具,常用于服务器监控。运行参数为1时,它会每秒打印一次摘要。第一行显示自启动以来的平均值,可跳过。

Reference