vmstat 命令详解

来源:互联网 发布:kali linux手机版下载 编辑:程序博客网 时间:2024/05/16 05:33
vmstatvmstat 是最早用于显示所有与内存和进程相关信息的命令,调用时,该命令会持续运行并发布其信息。它有两个参数:# vmstat <interval> <count><interval> 是两次运行之间的时间间隔,以秒为单位。<count> 是 vmstat 重复的次数。下面是当我们希望 vmstat: 每隔 5 秒运行一次并在第 10 次运行后停止时的示例。每 5 秒之后都会输出一行并显示此时的统计信息。# vmstat   5 10 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st 0  0 170988  22256   6796 322680    1    2   335    48   92   22  4  8 84  5  0该输出显示有关系统资源的信息:   procs  显示进程数   r      等待运行的进程。系统上的负载越多,等待运行 CPU 周期的进程数量越多。   b      不可中断睡眠的进程,也称为“被阻塞”的进程。这些进程最有可能等待 I/O,但也可能等待其他事情。wpd,free,buff,cache显示了内存值班   wpd    虚拟内存或交换内存的数量(以 KB 为单位)   free   可用物理内存的数量(以 KB 为单位)   buff   用作缓冲区的内存数量(以 KB 为单位)   cache  用作缓存的物理内存数量(以 KB 为单位)si so 显示了交换活动:   si     将内存从磁盘交换回物理 RAM 的速率(以 KB/秒为单位)   so     将内存从物理 RAM 交换到磁盘的速率(以 KB/秒为单位)bi,bo显示了 I/O 活动:   bi     系统向块设备发送数据的速率(以块/秒为单位)   bo     系统从块设备中读取数据的速率(以块/秒为单位)in,cs 显示了系统相关活动:   in     系统每秒接收到的中断数   cs     在进程空间中切换上下文的速率(以数量/秒为单位)us,sy,id,wa 显示了 CPU 负载的信息:   us     显示花费在用户进程中的 CPU 百分比。Oracle 进程属于这一类。   sy     系统进程(如所有根进程)使用的 CPU 百分比   id     可用 CPU 百分比   wa     花费在“等待 I/O”上的百分比   输出的第一行是自从系统重新启动以来所有指标的平均值。该行可忽略,因为它并不显示当前状态理想情况下,等待或阻塞的进程数量(位于“procs”下)应该为 0 或接近于 0。如果数值较高,则表示系统没有足够的资源(如 CPU、内存或 I/O)。“swap”下的数据表明交换是否过多。如果交换过多,则表明物理内存可能不足。应该减少内存需求或增加物理 RAM。“io”下的数据表示往返于磁盘的数据流。这表明正在进行的磁盘活动量,这并不一定表明存在问题。如果您看到“proc”和“b”列(正在阻塞的进程)下有较大的数值和较高的 I/O,则可能出现了严重的 I/O 争用问题。“cpu”标题下是最有用的信息。“id”列显示空闲 CPU。如果用 100 减去该数值,则会得到繁忙 CPU 的百分比。还记得本系列的另一个部分中描述的 top 命令吗?该命令还显示 CPU 的空闲百分比数值。区别是:top 显示每个 CPU 的空闲百分比,而 vmstat 显示所有 CPU 的空闲百分比。vmstat 命令还显示 CPU 使用情况的划分:Linux 系统使用多少、用户进程使用多少以及等待 I/O 使用多少。通过该划分,您可以确定 CPU 消耗的组成。如果系统 CPU 负载较高,能表明正在运行某个根进程(如备份)吗?一段时间内的系统负载应该一致。如果系统显示较高的数值,请使用 top 命令确定占有 CPU 的系统进程针对 Oracle 用户的用法Oracle 进程(后台进程和服务器进程)和用户进程(sqlplus、apache 等)位于“us”下。如果该数值较高,则使用 top 来确定进程。如果“wa”列显示较高的数值,则表明 I/O 系统无法跟上读取或写入的数量。有时这可能是因为在数据库中进行大量更新,从而导致日志切换以及后续的大量存档进程。但是,如果它持续显示一个较大的数值,则表明可能存在 I/O 瓶颈。Oracle 数据库中的 I/O 瓶颈可能会造成严重的问题。与性能问题不同,慢速 I/O 可能导致控制文件写入速度缓慢,这会导致等待获取控制文件的进程加入队列。如果等待超过 900 秒且等待者是关键进程(如 LGWR),则会关闭数据库实例。如果您看到很多交换,可能是 SGA 的太大,以至于物理内存容纳不下。应该减小 SGA 大小或增加物理内存。

[1] http://blog.csdn.net/evils798/article/details/7524469

0 0
原创粉丝点击