Linux性能分析调优基础

linux_observability_tools

vmstat

全称为virtual memory stat,它能打印内存使用情况。
vmstat 1 10 表示每秒采集一次系统状态,采集10次。

1
2
3
4
5
6
7
8
9
10
11
procs -----------memory---------- ---swap-- -----io---- -system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 1202464 181668 224852 2814124 0 0 10 15 0 0 8 10 81 0 0
0 0 1202464 181684 224852 2814124 0 0 0 0 431 635 1 0 99 0 0
9 0 1202464 181808 224852 2814124 0 0 0 0 428 730 1 0 100 0 0
0 0 1202464 181808 224852 2814124 0 0 0 0 722 1182 1 0 99 0 0
0 0 1202464 181800 224852 2814124 0 0 0 112 384 652 0 0 100 0 0
0 0 1202464 181800 224852 2814124 0 0 0 36 555 857 1 0 99 0 0
0 0 1202464 181800 224852 2814128 0 0 0 0 423 653 1 0 100 0 0
0 0 1202464 181800 224852 2814128 0 0 0 0 483 708 0 1 99 0 0
0 0 1202464 181800 224852 2814132 0 0 0 0 555 850 0 0 100 0 0

r: The number of processes waiting for run time.
b: The number of processes in uninterruptible sleep.
swpd: the amount of virtual memory used.
free: the amount of idle memory.
si: Amount of memory swapped in from disk (/s).
so: Amount of memory swapped to disk (/s).
bi: Blocks received from a block device (blocks/s).
bo: Blocks sent to a block device (blocks/s).
in: 每秒中断次数,包括时钟终端。
cs: 每秒上下文切换次数。
us: 用户态时间
sy: 内核态时间
id: CPU空闲时间
wa: IO等待时间

dmesg

dmesg|tail -n 50
查看最近50条系统消息。通过这个能往往看出一些报错。

mpstat

mpstat -P ALL 1
按照单个CPU显示各种负载。如果发现某个cpu负载大,而其他比较空闲则值得注意。