注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Fly to the Sky!

很多人因为寂寞而错爱一个人,更多人因为错爱一个人而寂寞一生。

 
 
 

日志

 
 

vmstat - Linux系统性能监控工具  

2010-04-10 14:41:01|  分类: 性能分析工具 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

顾名思义,vmstat是virtual memory统计工具。不过,vmstat其实不仅仅可以汇报内存使用情况,磁盘活动,cpu利用情况等也会同时显示出来,因为这些和virtual memory活动也是有关联的,或者相互影响的。

首先,什么是virtual memory?简单的说,linux支持应用程序使用比实际内存更大的内存空间,这是通过将硬盘上一个特定的分区(swap分区)或者一个特定的文件作为 内存的扩展来做到的。当实际内存不够用时,linux根据某种策略,将内存中的部分空间写到交换分区以便留出应用程序运行所需要的内存空 间。但是,一旦开始使用交换空间,磁盘活动自然就多起来,cpu利用率就降低下来(因为磁盘的速度比内存和cpu慢多了)。这就是为什 么vmstat会同时显示磁盘和cpu活动情况的原因。

vmstat输出的各个字段的含义可以参考man vmstat的解释,下面就我的理解说一下vmstat常用的几种使用方式。

1 观察磁盘活动情况磁盘活动情况主要从以下几个指标了解:
bi: 表示从磁盘每秒读取的块数(blocks/s)。数字越大,表示读磁盘的活动越多
bo:表示每 秒写到磁盘的块数(blocks/s)。数字越大,表示写磁盘的活动越多
wa:cpu等待磁盘I/O(未决的磁盘IO)的时 间比例。数字越大,表示文件系统活动阻碍cpu的情况越严重,因为cpu在等待慢速的磁盘系统提供数据。wa为0是最理想的。如果wa经 常大于10,可能文件系统就需要进行性能调整了

   
2 观察cpu活动情况vmstat比top更能反映出cpu的使用情况:
us:用户程序使用cpu的时间比例。 这个数字越大,表示用户进程越繁忙。
sy:系统调用使用cpu的时间比例。注意,NFS由于是在内核里面运行 的,所以NFS活动所占用的cpu时间反映在sy里面。这个数字经常很大的话,就需要注意是否某个内核进程,比如NFS任务比较繁重。如果us和sy同时 都比较大的话,就需要考虑将某些用户程序分离到另外的服务器上面,以免互相影响。
id:cpu空闲的时间比例
wa:cpu 等待未决的磁盘IO的时间比例

 

Vmstat详细解释

vmstat:报告关于内核进程,虚拟内存,磁 盘,cpu的的活动状态的工具

主要有几个用法:

1.vmstat 间隔 测试数量
输出如下
kthr memory page faults cpu
----- ----------- ------------------------ ------------ -----------
r b avm fre re pi po fr sr cy in sy cs us sy id wa
0 0 26258 18280 0 0 0 7 20 0 127 227 64 1 2 96 1
其中:
kthr-- 内核进程的状态
--r 运行队列中的进程数,在一个稳定的工作量下,应该少于5 (r <5)
--b 等待队列中的进程数(等待I/O),通常情况下是接近0的.

memory--虚拟和真实内存的使用信息
--avm 活动虚拟页面,在进程运行中分配到工作段的页面空间数.
fre 空闲列表的数量.一般不少于120,当fre 少于120时,系统开始自动的kill进程去释放free list

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.

2.vmstat -s
显示系统自初 始化以来的页面信息.
top是给Linux设计的。在FreeBSD VM里面的Free概念和其他OS完全不同,使用top查看Free内存对于FreeBSD来说可以说没什么意义。正确的方法是看vmstat。

# vmstat
procs       memory       page                        disk   faults       cpu
r b w      avm    fre   flt   re   pi   po   fr   sr ad0   in   sy   cs us sy id
0 2 1   270512   20316   30   0   0   0   26   5 1223 1589   98 593   1   1 99

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

procs:
r--> 在运行的进程数
b-->在等待io的进程数(等待i/o,paging等等)
w-->可以进入运行队列但被替换的进程

memoy(以 k为单位,包括虚拟内核和真实内存,正在运行或最近20秒在运行的进程所用的虚拟内存将被视为active)
avm-->活动的虚拟内存
free--> 空闲的内存

pages(统计错误页和活动页,每5秒平均一下,以秒为单位给出数值)
flt-->错误页总数
re--> 回收的页面
pi-->进入页面数
po-->出页面数
fr-->空余的页面数
sr-->每秒通过 时钟算法扫描的页面

disk 显示每秒的磁盘操作(磁盘名字的前两个字母加数字,默认只显示两个磁盘,如果有多的,可以加-n来增加数字或在命令行下把磁盘名都填上。)

fault 显示每秒的中断数
in-->设备中断
sy-->系统中断
cy-->cpu交换

cpu 表示cpu的使用状态
cs-->用户进程使用的时间
sy-->系统进程使用的时间
id-->cpu空闲的时间

解释:
如果 r经常大于 4 ,且id经常少于40,表示cpu的负荷很重。
如果pi,po 长期不等于0,表示内存不足。
如果disk 经常不等于0, 且在 b中的队列大于3,表示 io性能不好。
 
Linux下vmstat输出释疑:

Vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 100152 2436 97200 289740 0 1 34 45 99 33 0 0 99 0

procs
r 列表示运行和等待cpu时间片的进程数,如果长期大于1,说明cpu不足,需要增加cpu
b 列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。
cpu 表示cpu的使用状态
us 列显示了用户方式下所花费 CPU 时间的百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长 期大于50%,需要考虑优化用户的程序
sy 列显示了内核进程所花费的cpu时间的百分比。这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足
wa 列显示了IO等待所占用的CPU时间的百分比。这里wa的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的,也可 能磁盘或者磁盘访问控制器的带宽瓶颈造成的(主要是块操作)。
id 列显示了cpu处在空闲状态的时间百分比
system 显示采集间隔内发生的中断数
in 列表示在某一时间间隔中观测到的每秒设备中断数。
cs列表示每秒产生的上下文切换次数,如当 cs 比磁盘 I/O 和网络信息包速率高得多,都应进行进一步调查。
memory
swpd 切换到内存交换区的内存数量(k表示)。如果swpd的值不为0,或者比较大,比如超过了100m,只要si、so的值长期为0,系统 性能还是正常
free 当前的空闲页面列表中内存数量(k表示)
buff 作为buffer cache的内存数量,一般对块设备的读写才需要缓冲。
cache: 作为page cache的内存数量,一般作为文件系统的cache,如果cache较大,说明用到cache的文件较多,如果此时IO中bi比较小,说明文件系统效率 比较好。

swap

si: Amount of memory swapped in from disk (kB/s). 虚拟内存的页导入(从SWAP DISK导入RAM)
so: Amount of memory swapped to disk (kB/s). 虚拟内存的页导出.


IO
bi 从块设备读入数据的总量(读磁盘)(每秒kb)。
bo 块设备写入数据的总量(写磁盘)(每秒kb)
这里我们设置的bi+bo参考值为1000,如果超过1000,而且wa值较大应该考虑均衡磁盘负 载,可以结合iostat输出来分析。
  评论这张
 
阅读(2057)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018