linux性能分析工具vmstat命令详解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

linux性能分析工具vmstat命令详解
vmstat命令详解
vmstat 命令报告虚拟内存统计信息和CPU负荷:页面调度,交换,任务交换,CPU利用率。

命令的语法是:
vmstat [-cisS] [d1 d2 d3 d4] [interval [count]]
当不用选项时,vmstat显示一条曲线表示自从系统启动后活动的信息。

如果指定interval(时间间隔),接下来的线是重复显示最后的interval期间活动的情况,直到用户中断命令执行。

当同时提供计数器时,统计信息按时间计数来显示。

如果指定了一个磁盘名(如d1,d2,等等。

),这些磁盘得到优先显示。

通常,系统上的前4个磁盘设备是显示的,因为只有四个设备能在一线条上显示,这个选项允许性能分析员修改缺省显示选项。

(*磁盘名通常随id,sd,xd,或xy (取决于类型和I/0界面)加一个数字,如id0,sd2,xd1等等命名而定。

),vmstat 命令显示若干字段信息:
procs 报表下面三种状态的进程数:
r--在运行队列中等候运行
b--被资源阻塞(I/0,页面调度,等等.)
w--可运行但是被换出的
memory 报告虚拟内存和实存信息:
swap--以千字节为单位的当前可用交换空间的数量
free--以千字节为单位的页自由表大小
page 报告每秒页面调度活动数量的信息:
re-从自由表回收页
mf--次要的错误;地址空间或硬件地址转换错误
pi--页入的千字节数
po -页出的千字节数
fr- 释放的千字节数
de--以千字节为单位的可接受的短期内存不足数
sr--页由时钟算法扫描
disk 可以为四个磁盘报告每秒磁盘I/O的数量
faults 报告每秒系统软件中断和硬件中断的速率
in-设备中断,不包括系统时钟中断
sy-系统调用
cs-CPU任务(上下文)交换
cpu-- CPU故障时间的百分比,在多处理器系统上,这是全部处理器的平均值: us- 用户时间
sy-- 系统时间
id-- 闲置时间
VMSTAT使用
通过STATSPACK收集服务器信息,主要通过收集VMSTAT的信息来展现服务器状况。

VMSTAT工具是最常见的UNIX监控工具,可以展现给定时间间隔的服务器的状态值。

在我们实际测试工作中借助VMSTAT工具可以监控linux内核cpu利用率。

一般VMSTAT工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数。

如:[oracle@brucelau oracle]$ vmstat 1 2 ---- 表示每秒采样一次,总共采样2次
procs memory swap io system CPU
r b w swpd free buff cache si so bi bo in cs us sy id
1 0 0 0 271844 18605
2 255852 0 0 2 6 102 10 0 0 100
0 0 0 0 271844 186052 255852 0 0 0 0 104 11 0 0 100
(注:目前系统几乎空闲,并且不同操作系统VMSTAT输出内容有所不同。

实际应用案例:
warriorII项目在测试防火墙业务卡新建连接性能时,由于开发未给出明确的每秒新建连
接数量指标,需要测试人员配合测试出实际每秒新建连接数量指
标。

如果漫无目的的打流量,
往往耗时耗力,通过结合查看系统内核cpu利用率的情况,无疑对测试人员能起到有的放矢
的作用。

下面给出一组实际测试情况:以速率20000packet/s打200000个新建连接(5组,每组速
率4000)。

需要发送10秒,后台通过VMSTAT命令查询cpu利用率情况,如下:
admin@DCRS-9816:~> vmstat 1 1000
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 0 399672 0 57468 0 0 0 0 111 46 0 0 100 0
1 0 0 39967
2 0 57468 0 0 0 0 105 44 0 0 100 0
0 0 0 399672 0 57468 0 0 0 0 106 48 0 1 99 0
0 0 0 399672 0 57468 0 0 0 0 105 48 0 0 100 0
0 0 0 388760 0 57468 0 0 0 0 21886 47 0 74 26 0
0 0 0 375616 0 57468 0 0 0 0 24872 53 0 73 27 0
0 0 0 362472 0 57468 0 0 0 0 27023 51 1 82 17 0
0 0 0 349328 0 57468 0 0 0 0 26032 52 0 86 14 0
0 0 0 336060 0 57468 0 0 0 0 26090 42 0 100 0 0 0 0 0 322916 0 57468 0 0 0 0 25941 55 0 100 0 0 0 0 0 309772 0 57468 0 0 0 0 24975 50 0 100 0 0 0 0 0 296628 0 57468 0 0 0 0 24436 52 0 100 0 0 0 0 0 283484 0 57468 0 0 0 0 24140 47 0 100 0 0 0 0 0 270340 0 57468 0 0 0 0 24235 54 0 100 0 0 0 0 0 269596 0 57468 0 0 0 0 1489 47 0 6 94 0
0 0 0 269596 0 57468 0 0 0 0 105 46 0 0 100 0
0 0 0 269596 0 57468 0 0 0 0 105 48 0 0 100 0
通过vmstat显示结果很容易看出系统内核在处理新建连接时
(10S,蓝色标注部分)时
cpu利用率情况。

当发现id为0时,说明cpu被完全占用了,无空闲资源,这个时候就没有必要继
续增大新建连接发送速率了。

此外开发人员在优化linux性能时也可以借助该工具,能挖掘系统性能潜力。

相关文档
最新文档