Linux - vmstat 命令详解

  1. vmstat  
  2. vmstat 是最早用于显示所有与内存和进程相关信息的命令,调用时,该命令会持续运行并发布其信息。它有两个参数:  
  3.  
  4. # vmstat <interval> <count>  
  5.   
  6. <interval> 是两次运行之间的时间间隔,以秒为单位。  
  7. <count> 是 vmstat 重复的次数。  
  8. 下面是当我们希望 vmstat:   
  9. 每隔 5 秒运行一次并在第 10 次运行后停止时的示例。  
  10. 每 5 秒之后都会输出一行并显示此时的统计信息。  
  11. # vmstat   5 10   
  12. procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------  
  13.  r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st  
  14.  0  0 170988  22256   6796 322680    1    2   335    48   92   22  4  8 84  5  0  
  15.   
  16.   
  17. 该输出显示有关系统资源的信息:  
  18.   
  19.    procs  显示进程数  
  20.   
  21.    r      等待运行的进程。系统上的负载越多,等待运行 CPU 周期的进程数量越多。  
  22.   
  23.    b      不可中断睡眠的进程,也称为“被阻塞”的进程。这些进程最有可能等待 I/O,但也可能等待其他事情。  
  24.   
  25. wpd,free,buff,cache显示了内存值班  
  26.   
  27.    wpd    虚拟内存或交换内存的数量(以 KB 为单位)  
  28.   
  29.    free   可用物理内存的数量(以 KB 为单位)  
  30.   
  31.    buff   用作缓冲区的内存数量(以 KB 为单位)  
  32.   
  33.    cache  用作缓存的物理内存数量(以 KB 为单位)  
  34.   
  35. si so 显示了交换活动:  
  36.   
  37.    si     将内存从磁盘交换回物理 RAM 的速率(以 KB/秒为单位)  
  38.   
  39.    so     将内存从物理 RAM 交换到磁盘的速率(以 KB/秒为单位)  
  40.   
  41. bi,bo显示了 I/O 活动:  
  42.   
  43.    bi     系统向块设备发送数据的速率(以块/秒为单位)  
  44.   
  45.    bo     系统从块设备中读取数据的速率(以块/秒为单位)  
  46.   
  47. in,cs 显示了系统相关活动:  
  48.   
  49.    in     系统每秒接收到的中断数  
  50.   
  51.    cs     在进程空间中切换上下文的速率(以数量/秒为单位)  
  52.   
  53.   
  54. us,sy,id,wa 显示了 CPU 负载的信息:  
  55.   
  56.    us     显示花费在用户进程中的 CPU 百分比。Oracle 进程属于这一类。  
  57.   
  58.    sy     系统进程(如所有根进程)使用的 CPU 百分比  
  59.   
  60.    id     可用 CPU 百分比  
  61.   
  62.    wa     花费在“等待 I/O”上的百分比  
  63.   
  64.   
  65.    输出的第一行是自从系统重新启动以来所有指标的平均值。该行可忽略,因为它并不显示当前状态  
  66.   
  67. 理想情况下,等待或阻塞的进程数量(位于“procs”下)应该为 0 或接近于 0。  
  68. 如果数值较高,则表示系统没有足够的资源(如 CPU、内存或 I/O)。  
  69.   
  70. “swap”下的数据表明交换是否过多。如果交换过多,则表明物理内存可能不足。应该减少内存需求或增加物理 RAM。  
  71.   
  72. “io”下的数据表示往返于磁盘的数据流。这表明正在进行的磁盘活动量,这并不一定表明存在问题。  
  73. 如果您看到“proc”和“b”列(正在阻塞的进程)下有较大的数值和较高的 I/O,则可能出现了严重的 I/O 争用问题。  
  74.   
  75. “cpu”标题下是最有用的信息。“id”列显示空闲 CPU。如果用 100 减去该数值,则会得到繁忙 CPU 的百分比。  
  76. 还记得本系列的另一个部分中描述的 top 命令吗?该命令还显示 CPU 的空闲百分比数值。区别是:top 显示每个 CPU 的空闲百分比,而 vmstat 显示所有 CPU 的空闲百分比。  
  77.   
  78. vmstat 命令还显示 CPU 使用情况的划分:Linux 系统使用多少、用户进程使用多少以及等待 I/O 使用多少。  
  79. 通过该划分,您可以确定 CPU 消耗的组成。如果系统 CPU 负载较高,能表明正在运行某个根进程(如备份)吗?  
  80.   
  81. 一段时间内的系统负载应该一致。如果系统显示较高的数值,请使用 top 命令确定占有 CPU 的系统进程  
  82.   
  83. 针对 Oracle 用户的用法  
  84. Oracle 进程(后台进程和服务器进程)和用户进程(sqlplus、apache 等)位于“us”下。  
  85. 如果该数值较高,则使用 top 来确定进程。如果“wa”列显示较高的数值,则表明 I/O 系统无法跟上读取或写入的数量。  
  86. 有时这可能是因为在数据库中进行大量更新,从而导致日志切换以及后续的大量存档进程。  
  87. 但是,如果它持续显示一个较大的数值,则表明可能存在 I/O 瓶颈。  
  88.   
  89. Oracle 数据库中的 I/O 瓶颈可能会造成严重的问题。与性能问题不同,慢速 I/O 可能导致控制文件写入速度缓慢,  
  90. 这会导致等待获取控制文件的进程加入队列。如果等待超过 900 秒且等待者是关键进程(如 LGWR),则会关闭数据库实例。  
  91.   
  92. 如果您看到很多交换,可能是 SGA 的太大,以至于物理内存容纳不下。应该减小 SGA 大小或增加物理内存。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值