vmstat命令参数介绍

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。

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

[[email protected] ~]# vmstat 2 10
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs  us sy id wa st
 2  0      0 107656   2108 381544    0    0    42     5  142  178  1  0 99  0  0
 0  0      0 107532   2108 381544    0    0     0     0  123  143  0  1 99  0  0
 0  0      0 107532   2108 381544    0    0     0     1  132  159  0  0 100  0  0
 0  0      0 107532   2108 381544    0    0     0     0  123  148  0  0 99  0  0
 0  0      0 107532   2108 381544    0    0     0     0  129  144  0  0 100  0  0
 0  0      0 107532   2108 381544    0    0     0     0  137  158  0  0 100  0  0
 0  0      0 107532   2108 381544    0    0     0     0  131  151  0  1 99  0  0
 0  0      0 107532   2108 381544    0    0     0    16  124  142  1  0 100  0  0
 0  0      0 107532   2108 381544    0    0     0     0  130  155  0  1 99  0  0
 0  0      0 107532   2108 381544    0    0     0     0  127  144  0  0 100  0  0

现在开始实战讲解每个参数的意思:

----------procs----------

r (run):可执行队列的线程数,这些线程都是可运行状态,只不过暂时未执行。

当这个值超过了CPU数目,就会出现CPU瓶颈了。这个也和top的负载有关系,一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。top的负载类似每秒的运行队列。如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。
b(blocked):被阻塞的进程数,正在等待IO请求。

----------memory----------

swpd (swaped)已使用的SWAP空间大小,KB为单位。虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。
free:可用的物理内存大小,KB为单位。
buff:物理内存用来缓存读写操作的buffer大小,KB为单位。
cache:物理内存用来缓存进程地址空间的cache大小,KB为单位。

----------swap----------
si(swap in)数据从swap读取到RAM的大小,KB为单位。 每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。
so(swap out)数据从RAM写入到swap的大小,KB为单位。每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。

----------io----------
bi(block in)磁盘块从文件系统或swap读取到RAM的大小,block为单位,1block=8/4KB 。块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte
bo(block out)磁盘块从RAM写入到文件系统或swap的大小,block为单位,1block=8/4KB。块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。

----------system----------
in(interrupt)被处理过的中断数。每秒CPU的中断次数,包括时间中断
cs(context switch)系统上正在做上下文切换的数目。每秒上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源,也要尽量避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。

----------CPU----------
us(user time)用户占用CPU的时间百分比
sy(system time)内核和中断占用CPU的时间百分比。如果太高,表示系统调用时间长,例如是IO操作频繁。
id(idle time)空闲占CPU的时间百分比。一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。
wa(wait time)所有可运行的线程被blocked以后都在等待IO,等待占CPU的时间百分比。等待IO CPU时间

vmstat –s 可以查看page in/page out的数量

原文地址:https://www.cnblogs.com/benben-wu/p/10678624.html

时间: 2024-11-07 16:13:51

vmstat命令参数介绍的相关文章

Puppet apply命令参数介绍(五)

Puppet apply 命令参数介绍 之前说过puppet的两种运行方式,第一种:c/s结构,第二种:单机运行.apply就是单独执行本地*.pp文件的代码工具,通常用于本地测试调试puppet代码. puppet apply常用参数: [[email protected] ~]# puppet apply -h puppet-apply(8) -- Apply Puppet manifests locally ======== SYNOPSIS -------- Applies a stan

Puppet 命令参数介绍(三)

Puppet 命令参数介绍 前言: Puppet的工作原理: puppet master启动默认是监听tcp协议的8140端口.通过ruby的webrick web接收agent端的请求,根据请求内容与master的统一接口文件site.pp文件匹配,将匹配到的主机资源编译成catalog向agent分发,agent接收到请求后在本地应用. Puppet 命令分为独立命令和集成命令,puppet3.0版本后就没有了独立命令,集成命令也是未来的一个趋势,所以只写puppet集成命令. 通常查看帮助

Linux编程 14 文件权限(用户列表passwd,用户控制shadow,useradd模板与useradd命令参数介绍)

一. 概述 linux安全系统的核心是用户账户. 创建用户时会分配用户ID(UID). UID是唯一的,但在登录系统时不是用UID,而是用登录名.在讲文件权限之之前,先了解下linux是怎样处理用户账户的.以及用户账户需要的文件和工具,这样处理文件权限问题时,就知道如何使用它们了. 1.1  /etc/passwd用户文件 /etc/passwd 是用来将用户的登录名,匹配到对应的UID上.它包含了一些与用户有关的信息.下面截取二个片断.如下图所示: root用户账户是linux系统管理员,固定

Puppet cert命令参数介绍(四)

puppet cert是管理Puppet证书签名的命令,在agent访问master时使用的是SSL安全套接字,优点是加密双方的通信数据,从而保证信息安全.puppet cert命令可以实现对证书的管理.授权.回收.显示和产生签名文件. 1.查看puppet cert帮助信息:(帮助文档注释过多,只截取参数部分) [[email protected] ~]# puppet cert -h * clean:        #--clean清理Master主机上存储的所有相关证书文件.   Revo

Puppet filebucket命令参数介绍(九)

puppet filebucket命令通常用来做文件的备份.获取和还原,支持远程操作. puppet 节点会在每次更新之前,将该节点运行的环境配置文件以md5的形式存储到/var/lib/puppet/bucket目录,里面包含了每个配置文件的内容.路径和名称,通过filebucket命令指定文件的md5值可将指定文件恢复. puppet filebucket参数: [[email protected] ~]# puppet filebucket -h puppet-filebucket(8) 

Monkey命令参数介绍

1) 参数: -p 参数-p用于约束限制,用此参数指定一个或多个包(Package,即App).指定 包之后,Monkey将只允许系统启动指定的APP.如果不指定包,Monkey将允许系统启动设备中的所有APP. 指定一个包: adb shell monkey -p com.htc.Weather 100 说明:com.htc.Weather为包名,100是事件计数(即让Monkey程序模拟100次随机用户事件). 指定多个包:adb shell monkey -p com.htc.Weathe

ansible命令参数介绍

-m:要执行的模块,默认为command -a:模块的参数 -u:ssh连接的用户名,默认用root,ansible.cfg中可以配置 -k:提示输入ssh登录密码.当使用密码验证的时候用 -s:sudo运行 -U:sudo到那个用户,默认为root -K:提示输入sudo密码,当不是NOPASSWD模式时使用 -C:只是测试一下会改变什么内容,不会真正去执行 -c:连接类型(default=smart) -f:fork多少个进程并发处理,默认为5个 -i:指定hosts文件路径,默认defau

Puppet module命令参数介绍(六)

puppet module是puppet的基础模块工具,agent和master都可以使用,主要包含下载.更新.查找.升级.创建等功能.它可以从Puppetforge上查找已经开发好的puppet基础模块代码为我们使用,不需要自己再去编写,提升工作效率. 查看puppet module的帮助信息: [[email protected] ~]# puppet help module USAGE: puppet module <action> [--environment production ]

BCDBOOT命令参数介绍

BCDboot 命令行选项 更新时间: 2013年10月 应用到: Windows 8, Windows 8.1, Windows Server 2012, Windows Server 2012 R2 BCDboot 是用于管理系统分区文件的命令行工具.可以在以下方案中使用此工具: 部署新电脑时设置系统分区上的启动文件.有关详细信息,请参阅捕获和应用 Windows.系统和恢复分区. 设置 Windows® 以启动到虚拟硬盘 (VHD) 文件.有关说明,请参阅引导到 VHD(本机引导):将虚拟