当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > 由vmstat看服务器

Unix/Linux
Linux教程:后台执行程序如何操作?
Linux教程:记录会话过程的命令
Linux和Windows区别分析之线程问题
Linux教程:22端口如何修改?
Linux教程:配置DHCP服务器方法介绍
css3教程:把系统日志记录到远程服务器
教你在Linux系统下破解SAM密码
Linux操作系统启动界面揭秘DHCP协议实现过程
如何检测U盘是否插入或拔出
Linux消除用户使用习惯的阻隔
编写应用程序要注重其安全性
Telnet在Linux系统下如何设置
Linux系统下误删除文件怎么办
删除Linux系统下的历史记录
修改Linux系统下22端口的两种方法
资深Linux程序员的开发经验谈
Ext2和Ext3文件系统
Linux策略性路由应用
如何在Linux中设置透明代理
Linux下的软件开发

Unix/Linux 中的 由vmstat看服务器


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 66 ::
收藏到网摘: n/a

如题,下面是详解
作者:刘颖博 时间:2004-3-22mail:[email protected],请指正 转载请注明出处及作者 说明:由于STATSPACK并不能获取全面分析性能问题所需要的所有信息,所以需要扩展其收集服务器的统计信息。(本文环境REDHAT Linux7.2) VMSTAT介绍通过STATSPACK收集服务器信息,主要通过收集VMSTAT的信息来展现服务器状况。VMSTAT工具是最常见的UNIX监控工具,可以展现给定时间间隔的服务器的状态值。 一般VMSTAT工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数。如:[oracle@brucelau oracle]$ vmstat 1 2 procs memory swap io system  CPU r b w swpd free buff cache  si so bi bo in cs us sy id 1 0 0 0 271844 186052 255852 0 0 2 6 102 10 0 0 100 0 0 0 0 271844 186052 255852 0 0 0 0 104 11 0 0 100 (注:目前系统几乎空闲,并且不同操作系统VMSTAT输出内容有所不同) 目前说来,对于服务器监控有用处的度量主要有:r(运行队列)pi(页导入)us(用户CPU)sy(系统CPU)id(空闲) 通过VMSTAT识别CPU瓶颈r(运行队列)展示了正在执行和等待CPU资源的任务个数。当这个值超过了CPU数目,就会出现CPU瓶颈了。获得CPU个数的命令(LINUX环境):cat /proc/cpuinfo|grep processor|wc –l当r值超过了CPU个数,就会出现CPU瓶颈,解决办法大体几种:1. 最简单的就是增加CPU个数2. 通过调整任务执行时间,如大任务放到系统不繁忙的情况下进行执行,进尔平衡系统任务3. 调整已有任务的优先级 通过VMSTAT识别CPU满负荷首先需要声明一点的是,vmstat中CPU的度量是百分比的。当us+sy的值接近100的时候,表示CPU正在接近满负荷工作。但要注意的是,CPU满负荷工作并不能说明什么,UNIX总是试图要CPU尽可能的繁忙,使得任务的吞吐量最大化。唯一能够确定CPU瓶颈的还是r(运行队列)的值。 通过VMSTAT识别RAM瓶颈数据库服务器都只有有限的RAM,出现内存争用现象是Oracle的常见问题。首先察看RAM的数量,命令如下(LINUX环境):[root@brucelau root]#free total used free shared buffers cachedMem: 1027348 873312 154036 185736 187496 293964-/+ buffers/cache: 391852 635496Swap: 2096440 0 2096440 当然可以使用top等其他命令来显示RAM。当内存的需求大于RAM的数量,服务器启动了虚拟内存机制,通过虚拟内存,可以将RAM段移到SWAP DISK的特殊磁盘段上,这样会出现虚拟内存的页导出和页导入现象,页导出并不能说明RAM瓶颈,虚拟内存系统经常会对内存段进行页导出,但页导入操作就表明了服务器需要更多的内存了,页导入需要从SWAP DISK上将内存段复制回RAM,导致服务器速度变慢。 解决的办法有几种:1. 最简单的,加大RAM2. 改小SGA,使得对RAM需求减少3. 减少RAM的需求(如:减少PGA) 我们基本的了解了VMSTAT工作,下面是STATSPACK通过vmstat统计收集服务器性能数据。 STATSPACK通过vmstat收集服务器信息首先在perfstat用户下建一个存储服务器信息的表:如建表:create table stats$vmstat(start_date date, --系统时间duration date, --时间间隔server_name varchar2(20), --服务器名称runque_waits number, --运行队列数据page_in number, --页导入数据page_out number, --页导出数据user_cpu number, --用户cpu数据system_cpu number, --系统cpu数据idle_cpu number, --空闲cpu数据wait_cpu number –等待cpu数据(只是aix存在))tablespace perfstat;然后,通过UNIX/LINUX的shell变成,利用vmstat的结果来获取相应的服务器信息,并且存放到表中。 关于shell编程,可能已经超出本文内容,并且诚实的说,本人并没有shell编程的经验,希望那位兄台可以完成shell编程的内容,并劳驾mail给我共享一下,谢了先!! 附:LINUX上VMSTAT的帮助手册:(man vmstat的结果)VMSTAT(8) Linux Administrator's Manual VMSTAT(8)NAME vmstat - Report virtual memory statistics SYNOPSIS vmstat [-n] [delay [ count]] vmstat[-V] DESCRIPTION vmstat reports information about processes, memory, paging, block IO, traps, and CPU activity. The first report produced gives averages since the last reboot. Additional reports give information on a sam- pling period of length delay. The process and memory reports are instantaneous in either case. Options The -n switch causes the header to be displayed only once rather than periodically. delay is the delay between updates in seconds. If no delay is specified, only one report is printed with the average values since boot. count is the number of updates. If no count is specified and delay is defined, count defaults to infinity. The -V switch results in displaying version information. FIELD DESCRIPTIONS Procs r: The number of processes waiting for run time. b: The number of processes in uninter