【随笔】vmstat性能监测
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。相比top,vmstat可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。
使用vmstat命令可以输出一条服务器状态信息:

可以在vmstat命令后添加2个参数,第一个参数表示间隔多长时间获取一次信息,单位为秒,第二个参数表示输出几个信息后停止获取:
第二个参数是缺省的,如果省略,则会一直输出状态信息,直至使用"Ctrl + C"停止vmstat:
现在来详细解释下这些参数:
procs
r --> 当前等待运行的进程队列,如果其超过了cpu内核数目,则表示这个cpu负载过高,cpu很繁忙,服务器的状态很危险。
b --> 表示阻塞的进程。
memory
swpd --> 虚拟内存已使用的大小,也就是已经有多少内存已经被交换到了交换文件货磁盘,如果大于0,表示机器物理内存不足了,如果不是程序内存泄露的原因,那么就该升级内存了或者把耗内存的任务迁移到其他机器。
free --> 空闲的物理内存的大小,或者说是未分配的可用内存。
buff --> 正在使用中的内存。
cache --> 直接用来记忆我们打开的文件,给文件做缓冲,也有一种说法是显示了有多少内存可以被交换到交换文件或者磁盘上。
swap
si --> 每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。
so --> 每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。
io
bi --> 块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte。
bo --> 块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。
system
in --> 每秒CPU的中断次数,包括时间中断。
cs --> 每秒系统为了处理任务而上下文切换的次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用。
cpu
us --> 用户CPU使用时间,即处理器在非内核程序消耗的时间。
sy --> 系统CPU使用时间,即处理内核相关任务消耗的时间,如果太高,表示系统调用时间长,例如是IO操作频繁。
id --> 空闲CPU使用时间,一般来说,id + us + sy = 100。
wt --> 等待IO CPU时间。
显示活跃和非活跃内存
在vmstat后加入-a选项

显示磁盘统计数据总结
vmstat也可以打印系统磁盘活动统计。使用-D选项

显示单位
可以选择你想打印的显示单位字符。在-S后跟上k (小写,1000)、 K (大写,1024)、 m (小写,1000000)、 M (大写,1048576) 字节. 如果你不想选择单位,默认使用的是K (1024)。


显示某个磁盘分区的详细统计数据
可以使用-p选项跟上设备名

【随笔】vmstat性能监测的更多相关文章
- 【系统监控】性能监测 vmstat,mpstat,iostat
一.系统整体性能监测工具:uptime [root@WebServer ~]# uptime (同w命令输出的第一行信息) 09:40:52 up 5 days, 57 min, 1 user, lo ...
- Linux按照CPU、内存、磁盘IO、网络性能监测
系统优化是一项复杂.繁琐.长期的工作,优化前需要监测.采集.测试.评估,优化后也需要测试.采集.评估.监测,而且是一个长期和持续的过程,不 是说现在优化了,测试了,以后就可以一劳永逸了,也不是说书 ...
- Linux 性能监测:介绍
看了某某教程.读了某某手册,按照要求改改某某设置.系统设定.内核参数就认为做到系统优化的想法很傻很天真:)系统优化是一项复杂.繁琐.长期的 工作,优化前需要监测.采集.测试.评估,优化后也需要测试.采 ...
- Linux性能监测
1.Linux性能监测:监测目的与工具介绍 看了某某教程.读了某某手册,按照要求改改某些设置.系统设定.内核参数就认为做到系统优化的想法很傻很天真:)系统优化是一项复杂.繁琐.长期的工作,优化前需要监 ...
- Linux 性能监测工具总结
前言: Linux系统出现问题时,我们不仅需要查看系统日志信息,而且还要使用大量的性能监测工具来判断究竟是哪一部分(内存.CPU.硬盘……)出了问题.在Linux系统中,所有的运行参数保存在虚拟目录/ ...
- inux按照CPU、内存、磁盘IO、网络性能监测
http://my.oschina.net/chape/blog/159640 系统优化是一项复杂.繁琐.长期的工作,优化前需要监测.采集.测试.评估,优化后也需要测试.采集.评估.监测,而且是一个长 ...
- Linux性能监测:CPU篇(转)
http://os.51cto.com/art/201012/239880.htm CPU 的占用主要取决于什么样的资源正在 CPU 上面运行,比如拷贝一个文件通常占用较少 CPU,因为大部分工作是由 ...
- Linux 性能监测:IO
磁盘通常是计算机最慢的子系统,也是最容易出现性能瓶颈的地方,因为磁盘离 CPU 距离最远而且 CPU 访问磁盘要涉及到机械操作,比如转轴.寻轨等.访问硬盘和访问内存之间的速度差别是以数量级来计算的,就 ...
- Linux 性能监测:Memory
这里的讲到的 "内存" 包括物理内存和虚拟内存,虚拟内存(Virtual Memory)把计算机的内存空间扩展到硬盘,物理内存(RAM)和硬盘的一部分空间(SWAP)组合在一起作为 ...
随机推荐
- ASP.NET MVC Web API 学习笔记---第一个Web API程序
http://www.cnblogs.com/qingyuan/archive/2012/10/12/2720824.html GetListAll /api/Contact GetListBySex ...
- VS2013添加解决方案内项目的引用,编译时提示找不到文件
1.添加解决方案内项目引用 2.编译时报错 原因: 要引用的程序集的Framework版本与当前项目的版本不一致. 解决: 统一引用与被引用程序集的版本.
- WeX5学习笔记-创建本地APP相关问题
1.在Native新建[创建本地APP]时, "服务地址”为本地IP和端口号,例如本地IP为192.168.253.1,端口号为8080,则设置为http://192.168.253.1:8 ...
- UIView常用的一些方法小记之setNeedsDisplay和setNeedsLayout
1,UIView的setNeedsDisplay和setNeedsLayout方法 首先两个方法都是异步执行的.而setNeedsDisplay会调用自动调用drawRect方法,这样可以拿到 UI ...
- Open-Drain与Push-Pull
GPIO的功能,简单说就是可以根据自己的需要去配置为输入或输出.(General Purpose Input Output,简称为GPIO或总线扩展器,利用工业标准I2C.SMBus?或SPI?接口简 ...
- [DFNews] What's coming in EnCase 7.08?
论版本变化速度,AD绝对首屈一指,从FTK 4到现在的FTK 5也不过两年多时间,EnCase近期(初步预计8月初)将推出V7的新版本7.08,下面是一些新功能: Evidence Processor ...
- 67. Container With Most Water
Container With Most Water Given n non-negative integers a1, a2, ..., an, where each represents a poi ...
- 约瑟夫(环)问题(Josephus problem)
问题描述:皇帝决定找出全国中最幸运的一个人,于是从全国选拔出 n 个很幸运的人,让这 n 个人围着圆桌进餐,可是怎么选择出其中最幸运的一个人呢?皇帝决定:从其中一个人从 1 开始报数,按顺序数到第 k ...
- window7下使用vagrant打造lamp开发环境(一)
前言: 公司电脑只有win7 + (xampp || wamp)开发,处于个人爱好,想学习下在最舒服的开发环境下开发,也不想安装双系统,想用Vmware电脑却配置不高,vagrant+virtual ...
- 如何在博客中插入jsfiddle的代码
1.进入官网:https://jsfiddle.net/ 可以看到如下界面,顶端的控制按钮包括:保存,运行,代码格式化等: 2.将html.css.js分别写在指定的位置当中,最后一个框result是 ...