Vmstat与iostat详解(ZT)

上一篇 / 下一篇  2008-07-23 10:35:06 / 个人分类:操作系统

Linux在具有高稳定性、可靠性的同时,具有很好的可伸缩性和扩展性,能够针对不同的应用和硬件环境调整,优化出满足当前应用需要的最佳性能。因此企业在维护Linux系统、进行系统调优时,了解系统性能分析工具是至关重要的。

 

  在Linux下有很多系统性能分析工具,比较常见的有topfreepstimetimexuptime等。下文将介绍几个较为重要的性能分析工具vmstatiostatsar及其使用。

 

  用vmstat监视内存使用情况

IXDBA.NET社区论坛

 

  vmstatVirtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。

 

  vmstat的语法如下:

 

 

  vmstat [-V] [-n] [delay [count]]

 

 

 

  其中,-V表示打印出版本信息;-n表示在周期性循环输出时,输出的头部信息仅显示一次;delay是两次输出之间的延迟时间;count是指按照这个时间间隔统计的次数。对于vmstat输出各字段的含义,可运行man vmstat查看。

 

  用iostat监视I/O子系统情况

 

  iostatI/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。

 

  iostat的语法如下:

 

 

 

iostat [ -c | -d ] [ -k ] [ -t ] [ -V ] [ -x [ device ] ] [ interval [ count ] ]

 

 

 

  其中,-c为汇报CPU的使用情况;-d为汇报磁盘的使用情况;-k表示每秒按kilobytes字节显示数据;-t为打印汇报的时间;-v表示打印出版本信息和用法;-x device指定要统计的设备名称,默认为所有的设备;interval指每次统计间隔的时间;count指按照这个时间间隔统计的次数。

 

  iostat一般的输出格式如下:

 

 

Linux2.4.18-18smp (builder.linux.com)20030307

 

 

avg-cpu: %user %nice %sys %idle

 

4.81 0.01 1.03 94.15

 

 

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn

 

dev3-0 30.31 1117.68 846.52 16104536 12197374

 

dev3-1 7.06 229.61 40.40 3308486 582080

 

 

对于输出中各字段的含义,iostat的帮助中有详细的说明。

 

 

vmstat命令报告虚拟内存统计信息和CPU负荷:页面调度,交换,任务交换,CPU利用率。命令的语法是:

vmstat [-cisS] [d1 d2 d3 d4] [interval [count]]

当不用选项时,vmstat显示一条曲线表示自从系统启动后活动的信息。如果指定interval(时间间隔),接下来的线是重复显示最后的interval期间活动的情况,直到用户中断命令执行。当同时提供计数器时,统计信息按时间计数来显示。

如果指定了一个磁盘名(如d1d2,等等。),这些磁盘得到优先显示。通常,系统上的前4个磁盘设备是显示的,因为只有四个设备能在一线条上显示,这个选项允许性能分析员修改缺省显示选项。(*磁盘名通常随idsdxd,xy (取决于类型和I/0界面)加一个数字,如id0sd2xd1等等命名而定。)

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命令有四个可选标志可供使用。如果机器有虚拟地址缓存-c标志就改变输出报告缓存刷新统计数据。报告包括自从系统启动后每种缓存刷新全部总量。六个缓存类型是用户,上下文,区域,段,页,部分页。

-i标志使输出变为报告中断的数量。如果给出设备名,如d1,d2等,监控将在设备级*执行,(*注,参阅第十二章有关打开设备级监控的信息。)并报告每个给定设备的统计信息。

修改"普通"报告来显示交换而非页面调度活动的信息。这选项改变显示的两个字段:si(换入)so(换出)替代了remf字段。

值得注意是,intervalcount选项对-i-s选项是非法的。

 

 

 

vmstat参数详解

procs:

 

r-->在运行队列中等待的进程数

b-->在等待io的进程数

w-->可以进入运行队列但被替换的进程

 

 

memoy

 

swap-->现时可用的交换内存(k表示)

free-->空闲的内存(k表示)

 

 

 

pages

 

re--》回收的页面

mf--》非严重错误的页面

pi--》进入页面数(k表示)

po--》出页面数(k表示)

fr--》空余的页面数(k表示)

de--》提前读入的页面中的未命中数

sr--》通过时钟算法扫描的页面

 

 

disk显示每秒的磁盘操作。s表示scsi盘,0表示盘号

 

fault显示每秒的中断数

in--》设备中断

sy--》系统中断

cy--》cpu交换

 

 

cpu表示cpu的使用状态

 

cs--》用户进程使用的时间

sy--》系统进程使用的时间

id--》cpu空闲的时间

 

 

 

FIELD DEscrīptIONS

 

Procs

 

r: The number of processes waiting for run time.

 

b: The number of processes in uninterruptable sleep.

 

w: The number of processes swapped out but otherwise runnable.

 

 

Thisfield is calculated, but Linux never desperation swaps.

 

 

Memory

 

swpd: the amount of virtual memory used (kB).

 

free: the amount of idle memory (kB).

 

buff: the amount of memory used as buffers (kB).

 

 

Swap

 

si: Amount of memory swapped in from disk (kB/s).虚拟内存的页导入(SWAP DISK导入RAM)

 

so: Amount of memory swapped to disk (kB/s).虚拟内存的页导出.

 

(RAMSWAP DISK)

 

 

IO

 

bi: Blocks sent to a block device (blocks/s).

 

bo: Blocks received from a block device (blocks/s).

 

 

System

 

in: The number of interrupts per second, including the clock.

TAG: 操作系统

 

评分:0

我来说两句

Open Toolbar