下面是关于Unix下vmstat命令的详细介绍,收录在这里,以备日后参考

vmstat是用来实时查看内存使用情况,反映的情况比用top直观一些.作为一个CPU监视器,vmstat命令比iostat命令优先级要高,因为vmstat命令是滚动的,使得它的每报告一行的输出更容易扫描,并且如果有很多磁盘连接到系统中,由此所引起的开销更少。

如果直接使用,只能得到当前的情况,最好用个时间间隔来采集vmstat
T其中T用具体的时间标示,单位是

Vmstat 命令详细解释

kthr--内核进程的状态

--r 运行队列中的进程数,在一个稳定的工作量下,应该少于5

--b 等待队列中的进程数(等待I/O),通常情况下是接近0的.

memory--虚拟和真实内存的使用信息

--avm 活动虚拟页面,在进程运行中分配到工作段的页面空间数.

--fre 空闲列表的数量.一般不少于120,当fre少于120时,系统开始自动的kill进程去释放

page--页面活动的信息

--re 页面i/o的列表

--pi 从页面输入的页(一般不大于5)

--po 输出到页面的页

--fr 空闲的页面数(可替换的页面数)

--sr 通过页面置换算法搜索到的页面数

--cy 页面置换算法的时钟频率

faults--在取样间隔中的陷阱及中断数

--in 设备中断

--sy 系统调用中断

--cs 内核进程前后交换中断

cpu--cpu的使用率

--us 用户进程的时间

--sy 系统进程的时间

--id cpu空闲的时间

--wa 等待i/o的时间

一般us+sy 在单用户系统中不大于90,在多用户系统中不大于80.

wa时间一般不大于40.

其中:

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

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

如果b中的队列大于3,表示io性能不好。

更具体的参数说明

CPU统计信息在设备中断负载很高的系统上会有一定程度的失真。这种情况是因为该工具是对定时器中断采样。定时器是优先级最低的设备,所以它很容易被其它中断抢先。为了消除失真,当操作系统版本晚于AIX
4.3.3时,采用了一种不同的方法来对定时器进行采样。

注:对对称多处理系统us、sy、id和wa几列只是对各处理器求平均值(sar命令可以报告每个处理器的统计信息)。一个I/O等待和空闲时间只能从未决I/O的状态来区分。如果有一个未决磁盘I/O,并且处理器不忙,那么这是一个I/O等待时间。AIX
4.3.3和其后的系统中用一个增强的方法来计算花费在磁盘I/O上的CPU时间(wio时间)所占的百分比。

在最佳使用时,CPU在100%的时间中都在工作。在单用户系统中更是这样,这里不需要共享CPU。总的来说,如果us
+ sy时间低于90%,则不认为该单用户系统CPU受限制。但是,如果在一个多用户系统中us
+ sy时间超过80%,其中的进程将要花时间在运行队列中等待。响应时间和吞吐量会受损害。要检查CPU是否是瓶颈,考虑vmstat报告中的四个cpu列和两个kthr(内核线程)列,也应该查看faults列。cpu列在该时间间隔内使用CPU时间的百分比细分。cpu列如下:

us参数

us列显示了用户模式所消耗的CPU时间。一个UNIX进程可以在用户模式下执行,也可以在系统(内核)模式下执行。当在用户模式下执行时,进程在它自己的应用程序代码中之行,不需要内核资源来进行计算、管理内存或设置变量。

sy参数

sy列详细显示了CPU在系统模式下执行一个线程所花时间的百分比。包括内核进程(kprocs
)和其它需要访问内核资源的进程所消耗的CPU资源。如果一个进程需要内核资源,它必须执行一个系统调用,并因此被切换到系统模式从而可以使用该资源。例如,对一个文件的读或写操作需要内核资源来打开文件、寻找指定的位置和读写数据,除非使用内存映射文件。

id参数

id列显示了没有未决本地磁盘I/O时CPU空闲或等待时间的百分比。如果没有线程可以执行(运行队列为空)系统调度一个叫做wait的线程,也就是idlekproc。在一个对称多处理系统中,每个处理器都有一个wait线程可调度。由ps命令(带有-k或-g
0选项)将它确定为kproc或wait。如果报告中ps显示这个线程的总计时间高,这表明存在显著的时期,没有其它线程在这个CPU上准备运行或等待执行。系统因此大部分时间或任务空闲和等待新任务。

如果没有未决I/O,所有用于等待的时间归入空闲时间中。在4.3.2版或更早的操作系统中,访问远程磁盘(安装NFS磁盘)被当作空闲时间(有少量sy时间来执行NFS请求),因为没有对本地磁盘的未决I/O请求。在AIX
4.3.3和以后的系统中,NFS通过缓冲区高速缓存,在这些例程中的等待被放入wa中统计。

wa参数

wa列详细显示了有未决本地磁盘I/O时CPU空闲的时间百分比(在AIX
4.3.3和以后版本的系统中,对安装了NFS的磁盘也是这样)。如果当等待正在运行时至少有一个未完成的磁盘I/O,该时间归入等待I/O的时间。除非该进程使用异步I/O,否则对磁盘的I/O请求使调用线程被阻塞(或睡眠)直到请求被完成。一旦进程的I/O请求完成,该进程被放入运行队列中。如果I/O很快完成,该进程可以使用更多的CPU时间。wa的值如果超过25%,就表明磁盘子系统可能没有被正确平衡,或者这也可能是磁盘工作负荷很重的结果。

Kthr列每秒钟在采样间隔上对各种队列中的内核线程数求得的平均值。kthr列如下:

r参数

可运行的内核线程平均数目,包括正在运行的线程和等待CPU的线程。如果这个数字大于CPU的数目,至少有一个线程要等待CPU,等待CPU的线程越多,越有可能对性能产生影响。

b参数

每秒VMM等待队列中的内核线程平均数。包括正在等待文件系统I/O的线程,或由于内存装入控制而被挂起的线程。如果进程由于内存装入控制而被挂起,在vmstat报告中的阻塞列(b)表明线程数目增加,而不是运行队列中线程数目增加。

p参数

对与vmstat -I,是每秒等待原始设备I/O的线程数目。等待文件系统I/O的线程不包括在这里。

faults列关于进程控制的信息,如陷阱和中断率。faults列如下:

in参数

在该时间间隔中观测到的每秒设备中断数。额外信息可见用vmstat命令评估磁盘性能。

sy参数

在该时间间隔中观测到的每秒系统调用次数。通过明确的系统调用,用户进程可以使用资源。这些调用命令内核为调用线程执行操作,并在内核和该进程之间交换数据。因为,工作负荷和应用程序变化很大,不同的调用

以下是linux下vmstat的详细介绍:

vmstat

vmstat命令也是显示Linux性能指标的方法,它报告了许多信息,理解这些信息有一定难度。

输出分为6个类别:进程、内存、交换区、I/O、系统和CPU。与iostat类似,第一个样本是从最近重新启动以来的平均值。以下是一个典型的vmstat输出:

-m选项使内存字段以兆字节为单位显示。vmstat和许多其他性能命令一样使用取样间隔和计数参数。

进程(procs)信息有两列。r列是可运行进程的数量,b列是阻塞进程的数量。

内存部分有4个报告虚拟内存如何使用的字段。表3-7列出这些字段及其意义。

表3-7 vmstat内存字段

字 段

说 明

Swpd

已用的交换空间数量

free

自由RAM数量

buff

缓冲使用的RAM数量

cache

文件系统缓存使用的RAM数量

接下来是交换(swap)指标。交换只是一个古老术语,但是显然不会消失。交换涉及分页读取或写入磁盘的进程所消耗的所有内存。它将显示系统达到的性能指标水平。而Linux所做的是,以小块方式按照需要对磁盘空间进行分页操作。因此,我们可能应该停止说交换到磁盘的内存,并开始说分页到磁盘的内存。对于任何一种方法,表3-8解释了相关字段。

表3-8 vmstat交换字段

字 段

说 明

si

从磁盘分页到内存的数量

so

从内存分页到磁盘的数量

在交换之后是两个I/O字段。这部分提供了一个简略介绍以帮助确定Linux是否正忙于完成许多磁盘I/O。vmstat只提供两个字段,显示出入磁盘的数据量(参见表3-9)。

表3-9 vmstatio字段

字 段

说 明

bi

从磁盘读入的块

bo

写入磁盘的块

系统字段提供Linux内核进行进程管理的繁忙程度的摘要。中断和上下文开关参见表3-10。上下文开关指进程移出CPU或者移入CPU。

表3-10 vmstat系统字段

字 段

说 明

in

系统中断

cs

进程上下文开关

最后,CPU状态信息用总CPU时间的百分比来表示,如表3-11所示。

表3-11 vmstatcpu字段

字 段

说 明

us

用户模式

sy

内核模式

wa

等待I/O

id

空闲

vmstat详细说明的更多相关文章

  1. LR杂记 - Linux的系统监控工具vmstat详细说明

    一.前言 非常显然从名字中我们就能够知道vmstat是一个查看虚拟内存(Virtual Memory)使用状况的工具,可是如何通过vmstat来发现系统中的瓶颈呢?在回答这个问题前,还是让我们回想一下 ...

  2. linux系统性能调优第一步——性能分析(vmstat)

    linux系统性能调优第一步--性能分析(vmstat) 分类: LINUX 性能调优的第一步是性能分析,下面从性能分析着手进行一些介绍,尤其对linux性能分析工具vmstat的用法和实践进行详细介 ...

  3. vmstat 命令详解 转载

    vmstat 命令详解   procs:r-->在运行队列中等待的进程数b-->在等待io的进程数w-->可以进入运行队列但被替换的进程 memoyswap-->现时可用的交换 ...

  4. Linux查看系统性能命令

    性能调优的第一步是性能分析,下面从性能分析着手进行一些介绍,尤其对linux性能分析工具vmstat的用法和实践进行详细介绍. ———————————————————————————————————— ...

  5. 转贴---Linux服务器性能评估

    http://fuliang.iteye.com/blog/1024360 http://unixhelp.ed.ac.uk/CGI/man-cgi?vmstat ------------------ ...

  6. Linux系统性能调优之性能分析

    1.Linux性能分析的目的1)找出系统性能瓶颈(包括硬件瓶颈和软件瓶颈):2)提供性能优化的方案(升级硬件?改进系统系统结构?):3)达到合理的硬件和软件配置:4)使系统资源使用达到最大的平衡.(一 ...

  7. linux监控平台搭建-内存

    linux监控平台搭建-内存 上一篇文章说的硬盘.就写一下.更加重要的东西.在手机上面是RAM.机器是memory.内存是按照字节编址.每个地址的存储单元可以存放8bit的数据.cpu 通过内存地址获 ...

  8. 详细说明进程管理工具htop、vmstat等相关命令

    htop htop是一款运行于Linux系统监控与进程管理软件,用于取代Unix下传统top.与top只提供最消耗资源进程列表不同,htop提供所有进程的列表,并且使用彩色标识出处理器.swap和内存 ...

  9. 每天一个linux命令(46):vmstat命令

    vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存.进程.CPU活动进行监控.他是对系统的整体情况进行统计,不足之处是无法对某个进程进行深 ...

随机推荐

  1. 微信小程序申请。很蛋疼的流程。

    微信小程序申请. 营业执照,食品许可证,身份证正面,身份证反面. 1.先要申请服务号. 需要一个QQ邮箱,申请服务号. 填写各种信息,营业执照信息. 法人信息. 管理员用自己人的.方便开发操作. 申请 ...

  2. Java-集合类源码List篇(二)

    前言 上篇中,我们分析了ArrayList的常用方法及其实现机制.ArrayList是基于内存空间连续的数组来实现的,List中其实还提供了一种基于链表结构的LinkedList来实现集合.同时多线程 ...

  3. 浏览器指纹--纯js拿到浏览器指纹

    序言: 前两天有接收到一下问题,如何拿到浏览器指纹中的位置信息和CPU,在这之前完全没有接触过浏览器指纹,抱着学习和好奇的心态,就去网上查了大量的资料.下面我将学习过程和成果贴出来给大家. 步骤 1. ...

  4. Codeforces 888D Almost Identity Permutations:错排公式

    题目链接:http://codeforces.com/problemset/problem/888/D 题意: 给定n,k,问你有多少种1到n的排列,满足至少有n-k个a[i] == i. (4 &l ...

  5. 快速的熟悉一个angular的项目从run看起

    config之类的都会注入到controller或者run里边

  6. WPF利用通过父控件属性来获得绑定数据源RelativeSource

    WPF利用通过父控件属性来获得绑定数据源RelativeSource   有时候我们不确定作为数据源的对象叫什么名字,但知道作为绑定源与UI布局有相对的关系,如下是一段XAML代码,说明多层布局控件中 ...

  7. asp.net IE 页面刷新固定位置

    MaintainScrollPositionOnPostback="true" 可能我们会经常遇到这种情况,当页面内容比较多的时候,当用户执行操作执行一次页面回送后,页面又重新从顶 ...

  8. Java_数据交换_JAXB_用法入门

    一.前言 最近有个需求,需要进行xml 与 bean 的相互转化. 使用 JAXB 可完成这个需求. 二.概述 JAXB(Java Architecture for XML Binding) 是一个业 ...

  9. L118

    The company needs to focus on its biggest clients.This article discussed the events that led to her ...

  10. spring学习-3

    spring的自动装配 spring IOC容器可以自动装配bean,只需要在bean的autowire属性指定自动装配的模式. 模式: 1.byType:根据类型自动装配.根据bean的类型和当前b ...