vmstat 详解 附带iostat
文章目录
语法
vmstat [-n] [-s] [-p partition] [ineterval [count]] [delay] [count]
vmstat 运行于两种模式:
采样模式和平均模式。
如果不指定参数,则vmstat统计运行于平均模式下,vmstat 显示从系统启动以来所有统计数据的均值。
但是,如果指定了延迟,那么第一个采样仍然是系统启动以来的均值,但之后vmstat 按延迟秒数采样系统并显示统计数据。
vmstat显著的优点,开销很低,即使在高负载情况下也可以使用。
表1 解释了vmstat 的选项
选项 | 说明 |
---|---|
-n | 默认悄况下,vmstat定期显示每个性能统计数据的列标题。本选项禁止该特性,因此初始列标题之后,只显示性能数据。如果想要将vmstat 导出为电子表格,使用这个选项是有好处的 |
-s | 本选项一次性输出vmstat收集的系统统计的详细信息。该信息为系统启动后的总数据 |
delay | 采样的时间间隔 |
-a | 该项改变内存统计统计信息的默认输出以表示活跃/非活跃内存量,而不是缓冲区和高速缓存使用情况的信息 |
-m | 该项输出内核分片信息。输入cat /proc/slabinfo 可以获得同样的信息。信息详细展示了内核内存是如何分配的,并有助于确定哪部分内核消耗内存最多。 |
-D | 显示LINUX I/O子系统总的统计数据。它可以让你很好地了解你的I/O子系统是如何被使用的,但它不会给出单个磁盘的统计数据。显示的统计数数据是从系统启动开始的总信息,而不是两次采样之间的发生量。 |
-d | 按每个interval一个样本的速率显示每个磁盘的统计数据。这些统计信息是从系统启动开始的信息,而不是两次采样之间的发生量 |
-p partition | 按照每interval一个采样的速率显示给定分区的性能统计数据。这些统计信息是从系统启动开始的总信息,而不是两次采样之间的发生量 |
与CPU相关的vmstat输出
字段 | 说明 |
---|---|
r | 当前可运行的进程数。这些进程没有等待I/0. 而是已经准备好运行。理想状态下.可运行进程数应与可用CPU 的数证相等 |
b | 等待1 /0 完成的被阻塞进程数 |
forks | 创建新进程的次数 |
in | 系统发生中断的次数 |
cs | 系统发生上下文切换的次数 |
us | 用户进程消耗的总CPU时间的百分比(包括“友好的”时间) |
sy | 系统代码消耗的总CPU时间的百分比,其中包括消耗在system 、irq 和softirq 状态的时间 |
wa | 等待I/O 消耗的总CPU时间的百分比 |
id | 系统空闲消耗的总CPU时间的百分比 |
上下文切换的数量(cs)小于中断的数量(in)。调度器切换进程的次数少千定时器中断触发的次数。这很可能是因为系统基本上是空闲的,在定时器中断触发的大多数时候,调度器没有任何工作要做,因此它也不需要从空闲进程切换出去。
与内存相关的vmstat输出统计信息
字段 | 说明 |
---|---|
swpd | 当前swap的内存总量。 |
free | 未被操作系统或应用程序使用的物理内存总量。 |
buff | 系统缓冲区大小(单位为KB),或用于存放等待保存到硬盘的数据的内存大小(单位为KB )。该存储区允许应用程序向Linux内核发出写调用后立即继续执行(而不是等待直到数据被提交到硬盘)。-- 写缓存 |
cache | 用千保存之前从硬盘读取的数据的系统高速缓存或内存的大小(单位为KB ) 。如果应用程序再次需要该数据,内核可以从内存而非硬盘抓取数据,由此可提高性能。-- 读缓存 |
active | 被使用的活跃内存址。活跃/不活跃的统计数据与缓冲区/高速缓存的是正交的;缓冲区和高速缓存可以是活跃的,也可以是不活跃的 |
inactive | 不活跃的内存总认(单位为KB ),或一段时间未被使用,适合交换到硬盘的内存量 |
pages paged in | 从硬盘读入系统缓冲区的内存总量(单位为页)。 |
pages paged out | 从系统高速缓存写到硬盘的内存总量(单位为页)。 |
pages swap in | 从交换分区读入系统内存的内存总量(单位为页) |
pages swap out | 从系统内存写到交换分区的内存总量(单位也页) |
used swap | Linux内核目前使用的交换分区容量 |
free swap | 当前可用的交换分区容量 |
total swap | 系统的交换分区总量。 |
vmstat的磁盘I/O统计信息(默认模式)
统计数据 | 说明 |
---|---|
bo | 表示前次间隔中被写入磁盘的总块数(vmstat内磁盘的典型块大小为1024字节) |
bi | 表示前次间隔中从磁盘读出的块数(vmstat内磁盘的典型块大小为1024字节) |
wa | 表示等待I/0完成所消耗的CPU 时间。每秒写磁盘块的速率 |
vmstat的磁盘I/O统计信息(-D模式)
统计数据 | 说明 |
---|---|
disks | 系统中的磁盘总数 |
partitions | 系统中的分区总数 |
total reads | 读请求总数 |
merged reads | 为了提升性能而被合并的不同请求数量,这些读请求访问的磁盘上的相邻位置 |
read sectors | 从磁盘读取的扇区总数(一个扇区通常为512字节) |
milli reading | 磁盘读所花费的时间(以毫秒为单位) |
writes | 写请求的总数 |
merged writes | 为了提升性能而被合并的不同写请求数址,这些写请求访问的是磁盘上的相邻位置 |
written sectors | 向磁盘写入的扇区总数(一个扇区通常为512 字节) |
milli writing | 磁盘写所花费的时间(以毫秒为单位) |
inprogress IO | 当前正在处理的I/O总数。请注意,最近版本( v3 .2 ) 的vmstat在这里有个漏洞,除以1000 时其结果是错误的,几乎总是得到0 |
milli spent IO | 等待I/O 完成所花费的毫秒数。请注意,最近版本( v3 .2) 的vmstat 在这里有个漏洞,其数值为I/O 花费的秒数,而非毫秒数 |
vmstat的磁盘I/O统计信息(-d模式)
统计数据 | 说明 |
---|---|
reads: total | 读请求的总数 |
reads: merged | 为了提升性能而被合并的不同读请求数址,这些读请求访问的是磁盘上的相邻位置 |
reads: sectors | 从磁盘读取的扇区总数 |
reads: ms | 磁盘读所花费的时间(以毫秒为单位) |
writes: total | 写请求的总数 |
writes: merged | 为了提升性能而被合并的不同写请求数社,这些写请求访问的是磁盘上的相邻位置 |
writes: sectors | 向磁盘写人的扇区总数(一个扇区通常为512 字节) |
writes: ms | 磁盘写所花费的时间(以毫秒为单位) |
IO: cur | 当前正在处理的I/0 总数。请注意,最近版本(v3.2)的vmstat在这里有个湍洞,除以1000时其结果是错误的, 几乎总是得到0 |
IO: s | 等待I/0 完成所花费的秒数 |
磁盘I/O子系统统计专门工具IOSTAT
语法
iostat [-d] [-k] [-x] [device] [interval [count]]
iostat 命令行选项
选项 | 说明 |
---|---|
-d | 只显不磁盘I/O的统计信息,而不是默认信息。默认信息中还包括了CPU 使用情况 |
-k | 按KB显示统计数据,而不是按块显示 |
-x | 显不扩展性能I/O统计信息 |
device | 若指定设备, 则iostat只显示该设备的信息 |
interval | 采样间隔时间 |
count | 获取的样本总数 |
iostat设备统计信息
统计数据 | 说明 |
---|---|
tps | 每秒传输次数。该项为每秒对设备/ 分区读写请求的次数 |
Blk_read/s | 每秒读取磁盘块的速率 |
Blk_wrtn/s | 每秒写入磁盘块的速率 |
Blk_read | 在时间间隔内读取块的总数批 |
Blk_wrtn | 在时间间隔内写入块的总数址 |
iostat的扩展磁盘统计信息
统计数据 | 说明 |
---|---|
rrqm/s | 在提交给磁盘前,被合并的读请求的数量 |
wrqm/s | 在提交给磁盘前,被合并的写请求的数批 |
r/s | 每秒提交给磁盘的读请求数量 |
w/s | 每秒提交给磁盘的写请求数址 |
rsec/s | 每秒读取的磁盘扇区数 |
wsec/s | 每秒写入的磁盘扇区数 |
rkB/s | 每秒从磁盘读取了多少KB 的数据 |
wkB/s | 每秒向磁盘写入了多少KB 的数据 |
avgrq-sz | 磁盘请求的平均大小(按扇区计) |
avgqu-sz | 磁盘请求队列的平均大小 |
await | 完成对一个请求的服务所需的平均时间(按毫秒计)。该平均时间为请求在磁盘队列中等待的时间加上磁盘对其服务所需的时间. |
svctm | 提交到磁盘的请求的平均服务时间(按毫秒计)。该项表明磁盘完成一个请求所花费的平均时间。与await不同,该项不包含在队列中等待的时间 |
iostat用法示例
iostat -x -dk 1 5 /dev/dm-*
Linux 3.10.0-1160.49.1.el7.x86_64 (###########) 01/11/2022 _x86_64_ (128 CPU)
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
dm-0 0.00 0.00 0.02 0.18 0.55 8.12 84.37 0.00 1.53 14.48 0.04 1.73 0.04
dm-1 0.00 0.00 0.00 0.02 0.01 0.08 8.05 0.00 30.27 12.30 31.32 1.50 0.00
dm-2 0.00 0.00 0.05 0.36 1.64 14.74 79.89 0.00 1.20 8.82 0.13 0.53 0.02
dm-3 0.00 3.29 8.85 46.86 907.77 1676.09 92.76 0.52 9.26 29.42 5.45 0.69 3.85
dm-4 0.00 4.12 20.22 77.20 1568.53 3590.97 105.93 0.93 9.59 24.41 5.71 0.82 8.00
dm-5 0.00 6.47 5.41 156.92 728.57 5264.43 73.84 0.56 3.45 34.47 2.38 0.54 8.72
dm-6 0.00 3.84 12.60 46.74 476.05 2083.01 86.26 0.33 5.54 2.90 6.25 0.42 2.51
dm-7 0.00 4.10 11.48 38.37 763.27 1898.30 106.78 0.29 5.82 2.43 6.83 0.46 2.28
dm-8 0.00 3.73 16.43 154.26 1428.46 6767.59 96.03 1.05 6.16 18.09 4.89 0.54 9.20
dm-9 0.00 5.15 3.72 14.20 595.09 1203.14 200.73 0.37 20.90 36.04 16.94 1.44 2.58
dm-10 0.00 5.09 3.85 18.04 885.86 1943.41 258.56 0.55 25.25 16.37 27.15 1.03 2.25
dm-11 0.00 4.08 28.22 143.03 1960.43 5628.56 88.63 0.47 2.73 38.99 4.52 0.53 9.01
dm-12 0.00 2.55 5.89 13.83 2748.18 4147.29 699.35 0.49 25.06 22.73 26.04 1.59 3.13
dm-13 0.00 4.25 13.55 87.30 1042.99 3290.64 85.94 0.93 9.24 36.11 5.07 0.53 5.37
dm-14 0.00 3.68 13.60 95.93 1209.23 9064.35 187.59 0.98 8.92 29.49 6.00 0.68 7.50
dm-15 0.00 7.62 4.29 324.80 673.13 9719.43 63.16 0.62 1.87 18.49 1.65 0.41 13.60
dm-16 0.00 1.74 3.57 6.11 1252.06 1441.53 556.24 0.53 54.76 18.52 75.95 1.96 1.89
dm-17 0.00 0.94 2.43 3.10 1183.67 1188.45 858.72 0.65 117.65 14.44 198.60 1.70 0.94
dm-18 0.00 0.83 2.54 2.80 1282.60 1283.46 960.08 0.52 97.79 13.65 174.13 1.58 0.85
dm-19 0.00 0.00 156.64 1291.53 18705.83 60190.64 108.96 1.10 0.76 1.24 0.70 0.24 35.40
dm-20 0.00 0.00 0.00 0.39 0.03 18.97 95.92 0.00 0.15 19.24 0.06 0.28 0.01
dm-21 0.00 0.00 0.78 0.53 7.50 21.16 43.66 0.00 0.41 0.59 0.13 0.16 0.02
dm-22 0.00 0.00 0.01 0.03 1.37 4.14 270.59 0.00 0.74 1.68 0.57 0.13 0.00
dm-23 0.00 0.00 0.00 0.01 0.00 1.05 214.82 0.00 0.21 6.91 0.00 0.21 0.00
dm-24 0.00 0.00 0.01 0.95 0.88 16.93 36.95 0.00 0.09 5.59 0.02 0.07 0.01
参考文档:《Linux性能优化》《Optimizing Linux Performance - A Handons-on Guide to Linux Performance Tools》