用途

报告虚拟内存统计信息。

语法

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)、vmstat(wa)和 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 空闲时间。
wa CPU 空闲时间,在此期间系统有未完成的磁盘/NFS I/O 请求。请参阅上面的详细描述。

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

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

kthr 除了栏 r 和 b之外,栏 p 也将显示。

p
每秒等待实际物理 I/O 的线程数。
将显示新栏 fi 和 fo,代替 re 和 cy 栏。

fi
每秒调入的文件。
fo
每秒调出的文件。

标志

注:
如果在命令行中输入了  -f(或  -s)标志,系统将仅接受  -f(或  -s)标志,将忽略其它标志。如果同时指定了  -f 和  -s 标志,系统将仅接受第一个标志,忽略第二个标志。
-f 报告从系统启动后的派生数目。
-i 显示从系统启动后每个设备造成的中断数目。
-I 用新的输出栏显示 I/O 定向视图,p 在标题 kthr 下;栏 fi 和 fo 在标题页面下,而不是栏下;re和 cy 在页标题中。
-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 命令。

相关信息

iostat 和 vmo 命令。

vmstat 命令的用法说明相关推荐

  1. Linux磁盘下面有个mpatha,Linux中如何使用vmstat命令

    Linux下vmstat 命令可用于报告虚拟内存的统计信息,除此之外,vmstat 命令还有很多用法,下面系统之家的小编将给大家做个vmstat 命令的详细介绍,以便你有个了解. 它是对系统的整体情况 ...

  2. Linux vmstat命令详细解读

    vmstat命令:用来获得有关进程.虚存.页面交换空间及 CPU活动的信息 vmstat用法及参数: vmstat [-a] [-n] [-S unit] [delay [ count]] vmsta ...

  3. sar命令和vmstat命令详解

    sar命令 options 为命令行选项,sar命令常用选项如下: -A:所有报告的总和 -u:输出CPU使用情况的统计信息 -v:输出inode.文件和其他内核表的统计信息 -d:输出每一个块设备的 ...

  4. linux vmstat_Linux中vmstat命令指南

    linux vmstat An acronym for "Virtual Memory Statistics", the vmstat command is a Linux uti ...

  5. linux 监控报文命令 nc,linux监控命令nc用法

    一.nc命令检测端口的用法 # nc -v -w 10 %IP% -z %PORT% -v 显示指令执行过程. -w 设置等待连线的时间. -u 表示使用UDP协议 -z 使用0输入/输出模式,只在扫 ...

  6. 优化命令----Vmstat命令(有手就行)

    文章目录 一.简介 二.常用参数 1.显示虚拟内存使用情况 2.示例 1.显示启动后创建的进程总数: 查看系统已经fork了多少次 2.显示slab信息 3.头信息仅显示一次 4.以表格方式显示事件计 ...

  7. 一天一个 Linux 命令(40):vmstat 命令

    本文为joshua317原创文章,转载请注明:转载自joshua317博客 一天一个 Linux 命令(40):vmstat 命令 - joshua317的博客 一.简介 Linux下的vmstat( ...

  8. w命令、vmstat命令、top命令、sar命令、noload命令

    为什么80%的码农都做不了架构师?>>>    使用w命令查看系统负载 [root@yolks1 ~]# w23:05:05 up 1:18, 1 user, load averag ...

  9. linux tf命令,Linux系统命令介绍之vmstat命令详解

    今天小编要跟大家介绍的vmstat命令详解.熟悉Linux系统和使用Linux系统工作的小伙伴都知道Linux的命令有很多,而真正在工作中用到的命令应该不超过几十个,为了让大家更好的掌握这些命令,小编 ...

最新文章

  1. python log文件_Python logging基本使用
  2. SQLServer中利用NTILE函数对数据进行分组的一点使用
  3. php springboot,springboot是什么?
  4. Linux下的一些问题收集及解决方法(一)
  5. centos 6.5配置samba
  6. centos7 elk7.1.1安装
  7. 入门人工智能,我究竟该学些什么?
  8. linux实现自己的write函数,Linux 内核源码阅读 - write 系统调用的实现
  9. 经典SQL[私家珍藏]
  10. JQuery:常用方法一览
  11. c语言自建一个窗口,C语言 手把手教你写个自定义printf
  12. html 自动触发 事件,html中自动触发事件
  13. 【WLAN】【基础知识】WIFI那些事儿之Beamforming
  14. outlook设置263邮件服务器,如何设置Outlook邮件客户端收发邮件?
  15. python中try怎么用_python中的try的用法,try 的用法?,英文try的用法
  16. DeepFM算法详解-推荐算法中的皇冠
  17. Android中实现微信分享的功能
  18. Knowledge Graph Embedding: A Survey of Approaches and Applications (2)
  19. 全国计算机等级考试技巧,必看!全国计算机等级考试的应试技巧
  20. AutoIt软件说明

热门文章

  1. redhat linux 查看内存大小,CentOS (RHEL) 系统管理中的查看内存插槽数、最大容量和频率...
  2. 快速学习-ElasticaSearch6.2.1搜索管理
  3. 智慧天下:专业版和绿色版有什么区别?
  4. mysql分组并查询最新记录信息(亲测有效)
  5. ICO 项目被一刀切后,是时候深入探索区块链技术的应用了
  6. 微信查询天气公众账号小记
  7. 数据库binlog(二进制日志binary log)
  8. 切片器可以设置日期格式?_Excel切片器,原来有这么多厉害的用法
  9. centos7最小安装时输入命令ifconfig提示bash:ifconfig:未找到命令的错误
  10. 解决阿里云此手机号码绑定的账户数已达上限的方法