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详细解释
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内存字段
接下来是交换(swap)指标。交换只是一个古老术 语,但是显然不会消失。交换涉及分页读取或写入磁盘的进程所消耗的所有内存。它将显示系统达到的性能指标水平。而Linux所做的是,以小块方式按照需要 对磁盘空间进行分页操作。因此,我们可能应该停止说交换到磁盘的内存,并开始说分页到磁盘的内存。对于任何一种方法,表3-8解释了相关字段。 表3-8 vmstat交换字段
在交换之后是两个I/O字段。这部分提供了一个简略介绍以帮助确定Linux是否正忙于完成许多磁盘I/O。vmstat只提供两个字段,显示出入磁盘的数据量(参见表3-9)。 表3-9 vmstat io字段
系统字段提供Linux内核进行进程管理的繁忙程度的摘要。中断和上下文开关参见表3-10。上下文开关指进程移出CPU或者移入CPU。 表3-10 vmstat系统字段
最后,CPU状态信息用总CPU时间的百分比来表示,如表3-11所示。 表3-11 vmstat cpu字段
|
vmstat 命令详解 转载的更多相关文章
- vmstat命令详解--转载
一.前言 vmstat命令: 用来获得有关进程.虚存.页面交换空间及 CPU活动的信息.这些信息反映了系统的负载情况 二.虚拟内存运行原理 在系统中运行的每个进程都需要使用到内存,但不是每个进程都需 ...
- LINUX系统VMSTAT命令详解
linux系统vmstat命令详解 [转自 https://www.cnblogs.com/wensiyang0916/p/6514820.html] vmstat 1 1表示每秒采集一次vms ...
- linux sar 命令详解(转载)
linux sar 命令详解 2013-04-01 11:05 [小 大] 来源: 开源中国社区 评论: 0 分享至: 百度权重查询 词库网 网站监控 服务器监控 SEO监控 手机游戏 iPhone游 ...
- Linux监控工具vmstat命令详解
一.前言 很显然从名字中我们就可以知道vmstat是一个查看虚拟内存(Virtual Memory)使用状况的工具,但是怎样通过vmstat来发现系统中的瓶颈呢?在回答这个问题前,还是让我们回 ...
- [linux]vmstat命令详解-显示虚拟内存状态
本文转载于http://man.linuxde.net/vmstat 前言:Linux系统的内存分为物理内存和虚拟内存两种.物理内存是真实的,也就是物理内存条上的内存.而虚拟内存则是采用硬盘空间补充物 ...
- Linux vmstat命令详解
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况.这个命令是我查看Linux/Unix最 ...
- 系统性能分析-vmstat命令详解
最近温馨巩固Linux 操作系统的 vmstat命令,这个命令所能打印的系统信息满多的,比较好用,就顺当记录下重要的点,方便以后排查系统问题时拿出来用 字段 含义 procs 进程信息字段: -r:正 ...
- Android Linux vmstat 命令详解
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况.这个命令是我查看Linux/Unix最 ...
- linux screen 命令详解(转载)
转载于:http://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html 一.背景 系统管理员经常需要SSH 或者telent 远程登录到Li ...
随机推荐
- CentOS 系统配置完jdk,tomcat mysql,nginx 项目发布步骤
1.启动项目之前,一定要先启动nginx服务 重启nginx服务的命令:./nginx -s reload 2.然后启动三个tomcat的服务 3.如果只能进入tomcat,不能进入项目:把tomca ...
- Hibernate3回顾-6-hibernate缓存(性能优化策略)
主要来源: http://blog.csdn.net/csh624366188/article/details/7612142 (比较详细) http://www.cnblogs.com/20091 ...
- 【linux】locate介绍
Locale和everything 类似,有本地的检索库,它会自动更新检索库,但新创建的文件,不能用locale 查到,需要手动更新检索库update db 才能搜索到,在/tmp 目录下的文件不能搜 ...
- $_SERVER 相关变量
PHP编程中经常需要用到一些服务器的一些资料,特把$_SERVER的详细参数整理下,方便以后使用. $_SERVER['PHP_SELF'] #当前正在执行脚本的文件名,与 document root ...
- DIV的垂直居中
一直以来都没有找到一种完美解决DIV垂直居中的方法,今天终于找到了,特记录如下,从此不再用table来居中了.^^ <html> <style> #image{ width:5 ...
- SoPC/Qsys杂谈
1. 如果你想把Reset Vector放在EPCS Controller里面,记得将CPU core的Instruction Master和Data Master都连接到EPCS Controlle ...
- android学习笔记十——TabHost
TabHost——标签页 ==> TabHost,可以在窗口放置多个标签页,每个标签页相当于获得了一个与外部容器相同大小的组件摆放区域. 通过此种方式可以实现在一个容器放置更多组件(EG:通话记 ...
- QT显示中文的几个问题
最近用QT,需要在界面上显示中文,发现QT无法直接在代码中写中文,只能通过曲线救国的方式,比如用QT语言家,QTextCodec的fromloca8bit 研究了半天,终于明白了一些编码的问题 1.V ...
- db4o种纯对象数据库引擎
db4o是一种纯对象数据库,相对于传统的关系数据库+ORM,db4o具有以下好处:1)以存对象的方式存取数据(废话--,不过你考虑一下完全以对象的方式去考虑数据的存取对传统的数据库设计思维来说是多么大 ...
- CSS hack样式兼容模式收藏
part1 —— 浏览器测试仪器,测试您现在使用的浏览器类型 IE6 IE7 IE8 Firefox Opera Safari (Chrome) IE6 IE7 IE8 ...