Chinaunix首页 | 论坛 | 博客
  • 博客访问: 794203
  • 博文数量: 180
  • 博客积分: 4447
  • 博客等级: 上校
  • 技术积分: 1582
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-03 14:51
文章分类

全部博文(180)

文章存档

2014年(6)

2013年(8)

2011年(125)

2009年(35)

2008年(1)

2007年(5)

分类: LINUX

2011-01-06 14:00:40

vmstat 命令详解

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

memoy
swap-->现时可用的交换内存(k表示)
free-->空闲的内存(k表示)

pages
re--》回收的页面
mf--》非严重错误的页面
pi--》进入页面数(k表示)
po--》出页面数(k表示)
fr--》空余的页面数(k表示)
de--》提前读入的页面中的未命中数
sr--》通过时钟算法扫描的页面

disk 显示每秒的磁盘操作。 s表示scsi盘,0表示盘号


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

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


(1)通过VMSTAT识别CPU瓶颈

如果 r经常大于 4 ,且id经常少于40,表示cpu的负荷很重。
如果空闲时间(cpu id)持续为0并且系统时间(cpu sy)是用户时间的两倍(cpu us) 系统则面临着CPU资源的短缺.


r(运行队列)展示了正在执行和等待CPU资源的任务个数。当这个值超过了CPU数目,就会出现瓶颈了。
当r值超过了CPU个数,就会出现CPU瓶颈,解决办法大体几种:
1.   最简单的就是增加CPU个数
2.   通过调整任务执行时间,如大任务放到系统不繁忙的情况下进行执行,进尔平衡系统任务
3.  调整已有任务的优先级 
首先需要声明一点的是,vmstat中CPU的度量是百分比的。当us+sy的值接近100的时候,表示CPU正在接近满负荷工作。但要注意的是,CPU满负荷工作并不能说明什么,UNIX总是试图要CPU尽可能的繁忙,使得任务的吞吐量最大化。唯一能够确定CPU瓶颈的还是r(运行队列)的值。
 
(2)通过VMSTAT识别RAM瓶颈

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

 

内存的瓶颈是由scan rate (sr)来决定的.scan rate是通过每秒的始终算法来进行页扫描的.如果scan rate(sr)连续的大于每秒200页则表示可能存在内存缺陷.同样的如果page项中的pi和po这两栏表示每秒页面的调入的页数和每秒调出的页数.如果该值经常为非零值,也有可能存在内存的瓶颈,当然,如果个别的时候不为0的话,属于正常的页面调度这个是虚拟内存的主要原理.


数据库服务器都只有有限的RAM,出现内存争用现象是Oracle的常见问题。
首先察看RAM的数量,命令如下(LINUX环境):
当内存的需求大于RAM的数量,服务器启动了虚拟内存机制,通过虚拟内存,可以将RAM段移到SWAP DISK的特殊磁盘段上,这样会出现虚拟内存的页导出和页导入现象,页导出并不能说明RAM瓶颈,虚拟内存系统经常会对内存段进行页导出,但页导入操作就表明了服务器需要更多的内存了,页导入需要从SWAP DISK上将内存段复制回RAM,导致服务器速度变慢。
 
解决的办法有几种:
1.       最简单的,加大RAM
2.       改小SGA,使得对RAM需求减少
3.       减少RAM的需求(如:减少PGA)


(3)通过VMSTAT识别IO瓶颈
如果disk 经常不等于0, 且在 b中的队列 大于3, 表示 io性能不好。
 

 

-----------------------------------------------

 

Vmstat 命令 详细解释
2008-10-07 10:17

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的. (b=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
显示系统自初始化以来的页面信息.
+++++++++++++++++++++++++++++++++++++++++++++++

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                                                   vmstat io字段

字    段

说   明

bi

从磁盘读入的块

bo

写入磁盘的块

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

表3-10                                               vmstat系统字段

字   段

说     明

in

系统中断

cs

进程上下文开关

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

表3-11                                               vmstat cpu字段

字    段

说     明

us

用户模式

sy

内核模式

wa

等待I/O

id

空闲

阅读(2355) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~