vmstat用法(转)

来源:互联网 发布:rete算法 编辑:程序博客网 时间:2024/05/16 08:30
vmstat用法
  
top是给Linux设计的。在FreeBSD VM里面的Free概念和其他OS完全不同,使用top查看Free内存对于FreeBSD来说可以说没什么意义。正确的方法是看vmstat。

  procs memory page disk faults cpu

  r b w swap free re mf mi po fr de sr f0 s0 s1 s2 in sy cs us sy id

  0 0 0 14888 19120 0 4 2 11 10 0 0 0 0 0 8 198 2158 98 11 19 69

  SWAP的单位应该是K,不是M。还有两个比较重要的参数是PI、PO,表示内存的调入、调出页面,单位也是K,但是多大值作为一个衡量标准,我也不清楚,不知道是否有经验值。

  还有,最好使用vmstat t [n]命令,例如 vmstat 5 5,表示在T(5)秒时间内进行N(5)次采样。如果只使用vmstat,无法反映真正的系统情况,试一下,看看结果就知道了。

  procs:

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

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

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

  memory

  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空闲的时间

  解释:

  如果 r经常大于 4 ,且id经常少于40,表示cpu的负荷很重。

  如果pi,po 长期不等于0,表示内存不足。

  如果disk 经常不等于0, 且在 b中的队列 大于3, 表示 io性能不好。



-------------------------------------------------------------------
监看系统效能

在进行调校之前,我们可以先使用一些系统内附的工具来查看目前系统效能。我们之前已经介绍过 top这个指令,它可以让我们看目前系统中所有行程的状况、CPU、内存、及虚拟内存的使用情形。这里我们介绍另一个好用的工具 systat。systat可以用来显示网络使用情形、硬盘 I/O、CPU 等信息,可以说是最完整的系统监看工具。它的使用方法如下:

systat [-display] [refresh-interval]
其中 display 为我们所要显示的信息项目,我们也可以在进入 systat 后变更显示项目,而 refresh-interval 为多久要更新一次屏幕,单位是秒。以下为可用的 display 参数:

显示模式 意义
pigs 显示目前系统中使用 CPU 最多的行程名称。如果所有行程的 CPU 使用量未满 100%,则多出来的部份显示为 IDLE。
icmp 统计目前 ICMP 封包的进出情形。
icmp6 显示 IPv6 的 ICMP 封包进出情形。
ip 显示 IP 层的封包统计及 UDP 封包信息。
ip6 和 IP 一样,但只显示 IPv6 的封包。
tcp 显示 TCP 的封包统计。
iostat 显示 I/O 状况统计,并分类为各种模式显示。
swap 显示目前各个储存空间上的虚拟内存的使用情形。
mbufs 显示 mbufs 被使用的状态。
vmstat 这是我们最常用的显示模式,它显示了最多的信息,包含 I/O、虚拟内存、mbufs、网络等信息。
netstat 显示网络的使用情形。
ifstat 显示各个网络适配卡的使用情形。

进行 systat 之后,我们可以先按冒号「:」再打上述各种显示模式来变更显示的信息,如果要离开,则先按冒号,再按 quit 即可,或者也可以直接打。



/////////////////////////////////////////////////////////////////// another one /////////////////////////////////////////////////////////////////////////////////////

vmstat 命令

用途

报告虚拟内存统计信息。

语法

vmstat [ -f ] [ -i ] [ -s ][ -I ] [ -t ] [ -v ][ PhysicalVolume ... ] [ Interval [ Count ] ]

描述

vmstat 命令报告关于内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息。由 vmstat 命令生成的报告可以用于平衡系统负载活动。系统范围内的这些统计信息(所有的处理器中)都计算出以百分比表示的平均值,或者计算其总和。

如果调用 vmstat 命令时不带标志,则报告包含系统启动后虚拟内存活动的摘要。如果指定 -f 标志,则 vmstat 命令报告自从系统启动后派生的数量。PhysicalVolume 参数指定物理卷的名称。

Interval 参数指定每个报告之间的时间量(以秒计)。第一个报告包含系统启动后时间的统计信息。后续报告包含自从前一个报告起的时间间隔过程中所收集的统计信息。如果没有指定 Interval 参数,vmstat 命令生成单个报告然后退出。Count 参数只能和 Interval 参数一起指定。如果指定了 Count 参数,其值决定生成的报告数目和相互间隔的秒数。如果 Interval 参数被指定而没有 Count 参数,则连续生成报告。Count 参数不允许为 0。

在 AIX 4.3.3 及更新版本包含有此方法的增强,用于计算 CPU 等待磁盘 I/O 所花时间(wio 时间)的百分比。某些情况下,AIX 4.3.2 以及该操作系统更早的版本中使用的该方法在 SMP 上会给出夸张的 wio 时间报告。

AIX 4.3.2和更早版本中使用的方法如下:在每个处理器的每一次时钟中断(每个处理器一秒钟 100 次),确定上一个 10毫秒时间要归入四种类别(usr/sys/wio/idle)中的哪一个。如果在时钟中断的时候,CPU 正忙于 usr 方式,那么 usr将获取该时钟周期添加到其类别中。如果在时钟中断的时候,CPU 正忙于内核方式,那么 sys 类别获取该时钟周期。如果 CPU不忙的话,则检测是否有磁盘 I/O 正在进行。如果有任何正在进行的磁盘 I/ O,则累加 wio 类别。如果没有磁盘 I/O 正在进行且CPU 不忙,则 idle 类别获取该时钟周期。由于所有的空闲 CPU 都被归入 wio 类别,而不管正在等待 I/O的线程数量,所以会产生夸大的 wio 时间报告。例如,只有一个 I/O 线程的系统可能会报告 90% 以上的 wio 时间,而不管它拥有的CPU 数量。sar%wio)、vmstatwa)和 iostat% iowait)命令报告 wio 时间。

操作系统 AIX 4.3.3 及其更新版本使用的方法如下:如果一个未完成的 I/O在空闲的 CPU 上启动,则操作系统 AIX 4.3.3 中的更改将只把该 CPU 标记成 wio。当只有少量线程在进行 I/O而系统其它部分是空闲的,此方法能报告低得多的 wio 时间。例如,一个有四个 CPU 和一个正在进行 I/O 的线程的系统将报告最多 25%的 wio 时间。有 12 个 CPU 和一个正在进行 I/O 的线程的系统只报告最大为 8% 的 wio 时间。NFS 客户机通过 VMM读取/写入,biods 在 VMM 中花费的等待 I/O 完成的时间现在报告为 I/O 等待时间。

内核为内核线程、调页和中断活动维护统计信息,vmstat 命令通过使用perfstat 内核扩展来对其进行访问。磁盘输入/输出统计信息由设备驱动程序维护。对于磁盘,利用活动时间和传送信息数量来确定平均传送速率。活动时间的百分数根据报告期间驱动器忙的时间量来计算。

vmstat 命令生成的以下报告示例包含栏标题及其描述:

kthr:内核线程状态在采样间隔期间每秒钟更改一次。

r 置于运行队列中的内核线程数目。b 置于等待队列(等待资源、等待输入/输出)的内核线程数目。

内存:关于使用虚拟内存和实内存的信息。如果虚拟页已经被访问的话,虚拟页可以被认为是活动的。一页为 4096 个字节。

avm 活动虚拟页。fre 空闲列表的大小。
注:
大部分实内存都用作文件系统数据的高速缓存。对于保持较小的空闲列表,这是很正常的。

:关于缺页故障和调页活动的信息。这些是间隔的平均值,以秒为单位给出。

re 页面调度程序输入/输出列表。pi 从调页空间调度进的页面。po 调出到调页空间的页面。fr 释放的页(页面替换)。sr 通过页替换算法扫描的页面。cy 按页替换算法的时钟周期。

故障:采样间隔平均每秒的捕获和中断率。

in 设备中断sy 系统调用。cs 内核线程上下文切换。

Cpu:CPU 使用时间故障百分比。

us 用户时间。sy 系统时间。id CPU 空闲时间。waCPU 空闲时间,在此期间系统有未完成的磁盘/NFS I/O 请求。请参阅上面的详细描述。

磁盘:每秒向指定物理卷提供的传送数目,该过程在采样间隔中发生。PhysicalVolume 参数可以用于指定一到四个名称。每个指定驱动器的传送统计信息按指定顺序给出。该计数代表向物理设备的请求数。它并不暗示读取或写入的数据量。几个逻辑请求可以组合成为一个物理请求。

如果指定一个 -I 标志,I/O 定向视图将会出现以下栏目变化。

kthr除了栏 rb之外,栏 p 也将显示。
p
每秒等待实际物理 I/O 的线程数。
将显示新栏 fifo,代替 recy 栏。
fi
每秒调入的文件。
fo
每秒调出的文件。

标志

注:
如果在命令行中输入了 -f(或 -s)标志,系统将仅接受 -f(或 -s)标志,将忽略其它标志。如果同时指定了 -f-s 标志,系统将仅接受第一个标志,忽略第二个标志。
-f 报告从系统启动后的派生数目。-i 显示从系统启动后每个设备造成的中断数目。-I用新的输出栏显示 I/O 定向视图,p 在标题 kthr 下;栏 fifo 在标题页面下,而不是栏下;recy 在页标题中。-s 将总数结构中的内容写入到标准输出,该结构包含从系统初始化后调页事件的绝对计数。-s 标志只能与 -v 标志一起使用。如下描述了这些事件:
地址翻译错误
每次发生地址转换页面故障时增加。解决页面故障可能需要 I/O,也可能不需要。存储保护页面故障(失去锁定)不包含在此计数之内。
入页
随虚拟内存管理器读入的每页增加。计数随调页空间和文件空间的入页增加。它和出页统计信息一起表示实际 I/O(由虚拟内存管理器启动)的总量。
出页
随虚拟内存管理器写出的每页增加。计数随调页空间和文件空间的出页而增加。它和入页统计信息一起表示实际 I/O(由虚拟内存管理器启动)的总量。
调页空间入页
只随 VMM 启动的来自调页空间的入页而增加。
调页空间出页
只随 VMM 启动的来自调页空间的出页而增加。
总回收
当不启用一个新的 I/O 请求也可以满足地址翻译错误时增加。如果页面以前已经被 VMM 请求过的,但是 I/O 还没有完成;或者页面被预读算法提前提取,但是被故障段隐藏了;或者如果页面已经被放入空闲列表中,但还没有重新使用,则会发生此情况。
零填充页面故障
如果页面故障针对的是工作存储器,且可以通过指定一个帧并以零填充帧来满足它的话,则该值增加。
可执行填充页面故障
随着每个指令页面故障而增加。
用时钟检查页面
VMM 利用时钟算法实施伪最近最少使用(1ru)的页面替换模式。时钟检查过的页面是 aged。为每个时钟检查过的页面增加此计数值。
时钟指针的转动
随着每次 VMM 时钟旋转而增加(即在每一次完整的内存扫描后)。
用时钟释放的页面
随着时钟算法从实内存中选择释放的每一个页面而增加。
 
回溯
随着解决前一个页面故障时出现的每一个页面故障而增加。(必须首先解决新的页面故障,然后可以回溯到最初的页面故障。)
锁定丢失
VMM 通过除去对页面的寻址能力来强制并发性锁定。锁定丢失可能产生一个页面故障,每当此类情况发生时,此计数增加。
空闲帧等待
在收集可用帧时,每次 VMM 等待一个进程时增加。
扩展 XPT 等待
每次正在进行提交而使得 VMM 等待一个进程时,随着正在被访问的段而增加。
暂挂 I/O 等待
每次 VMM 等待一个进程时随着要完成的入页 I/O 而增加。
启动 I/O
随着每个被 VMM 启动的读取或写入 I/O 请求而增加。此计数应该与入页和出页的总数相等。
iodones
在每次完成 VMM I/O 请求时增加。
CPU 上下文交换
随着每次 CPU 上下文交换而增加(新进程的分派)。
设备中断
每次硬件中断时增加。
软件中断
每次软件中断时增加。一次软件中断是一个类似于硬件中断(保存一些状态和服务器例程分支)的机器指令。系统调用用软件中断指令来完成,该指令转换控制到系统调用处理程序例程。
陷阱
不通过操作系统来维护。
syscalls
随着每次系统调用而增加。
-t打印 vmstat 的每一输出行旁边的时间戳记。时间戳记按照 HH:MM:SS 格式显示。
注:
如果指定了 -f-s-i 标志,将不打印时间戳记。
-v将虚拟内存管理器维护的不同统计信息写入标准输出。-v 标志只能与 -s 标志一起使用。
内存页
实内存的大小(以 4 KB 的页面数目计)。
lruable 页
要用于替换的 4 KB 页面的数目。此数目不包含被用于 VMM 内部页和用于内核文本的固定部分的页面。
空闲页面
空闲 4 KB 页面的数目。
内存池
指定内存池数目的调整参数(使用 vmo 管理)。
固定页面
固定的 4 KB 页面的数目。
maxpin 百分比
指定能被固定的实内存百分数的调整参数(使用 vmo 管理)。
minperm 百分比
实内存百分比的调整参数(使用 vmo 管理)。它指定一临界点,低于此临界点时阻止页面重新调度算法使用文件页面。
maxperm 百分比
实内存百分比的调整参数(使用 vmo 管理)。它指定一临界点,高于此临界点时页面取走算法只取走文件页面。
numperm 百分比
当前由文件高速缓存使用的内存百分数。
文件页面
当前由文件高速缓存使用的 4 KB 页面的数目。
压缩百分比
由压缩页面使用的内存百分数。
压缩页面
压缩内存页面的数目。
numclient 百分数
被客户机页面占用的内存百分数。
maxclient 百分数
指定能用于客户机页面的最大内存百分数的调整参数(使用 vmo 管理)。
客户机页面
客户机页面的数目。
已调度的远程出页
调度用于客户机文件系统的出页的数目。
无 pbuf 而阻塞的暂挂磁盘 I/O
没有可用 pbuf 而阻塞的暂挂磁盘 I/O 请求的数目。Pbuf 是用于保存逻辑卷管理器层上的 I/O 请求的固定的内存缓冲区。
无 psbuf 而阻塞的调页空间 I/O
没有可用 psbuf 而阻塞的调页空间 I/O 请求的数目。Psbuf 是用于保存虚拟内存管理器层上的 I/O 请求的固定内存缓冲区。
-v(由 -v显示的统计信息,接上页)
无 fsbuf 而阻塞的文件系统 I/O
没有可用 fsbuf 而阻塞的文件系统 I/O 请求的数目。Fsbuf 是用于保存文件系统层上的 I/O 请求的固定内存缓冲区。
无 fsbuf 而阻塞的客户机文件系统 I/O
没有可用 fsbuf 而阻塞的客户机文件系统 I/O 请求的数目。NFS(网络文件系统)和 VxFS(Veritas)是客户机文件系统。Fsbuf 是用于保存文件系统层上的 I/O 请求的固定内存缓冲区。
无 fsbuf 而阻塞的外部页面调度程序文件系统 I/O
没有可用 fsbuf 而被阻塞的外部页面调度程序客户机文件系统 I/O 请求的数目。JFS2 是一个外部页面调度程序客户机文件系统。Fsbuf 是用于保存文件系统层上的 I/O 请求的固定内存缓冲区。

示例

  1. 要显示引导后的统计信息摘要,请输入:
    vmstat
  2. 要显示 2 秒时间间隔的 5 个摘要,请输入:
    vmstat 2 5

    第一次摘要包含引导后的时间统计信息。

  3. 要显示引导后包括逻辑磁盘 scdisk13 和 scdisk14 的统计信息摘要,请输入:
    vmstat scdisk13 scdisk14
  4. 要显示派生统计信息,请输入:
    vmstat  -f
  5. 要显示各事件的计数,请输入:
    vmstat -s
  6. 要显示 vmstat的每一输出栏旁边的时间戳记,请输入:
    vmstat -t
  7. 要以另一套输出栏显示新的 I/O 定向视图,请输入:
    vmstat -I
  8. 要显示所有可用的 VMM 统计信息,请输入:
    vmstat -vs

文件

 

/usr/bin/vmstat 包含 vmstat 命令。
原创粉丝点击