zoukankan      html  css  js  c++  java
  • Linux性能测试分析命令_vmstat

     vmstat命令主要是对操作系统的虚拟内存、进程、IO读写、CPU活动等整体情况进行统计。但是它不能对某个进程进行深入分析。

    vmstat基本语法

    命令使用格式:vmstat [options] [delay [count]]

    选项

     -a, --active           active/inactive memory
     -f, --forks            number of forks since boot
     -m, --slabs            slabinfo
     -n, --one-header       do not redisplay header
     -s, --stats            event counter statistics
     -d, --disk             disk statistics
     -D, --disk-sum         summarize disk statistics
     -p, --partition <dev>  partition specific statistics
     -S, --unit <char>      define display unit
     -w, --wide             wide output
     -t, --timestamp        show timestamp
    
     -h, --help     display this help and exit
     -V, --version  output version information and exit

    使用实例

    1、vmstat 1 2,每秒收集1次统计信息,总共收集2次。这是最常用的实例,不带选项。

    $ vmstat 1 2
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     1  0      0 142524 1499664 4028148    0    0    38    42    7    9  1  1 98  0  0
     0  0      0 141764 1499664 4028160    0    0     0     0 1123 2025  1  1 99  0  0

    以上各列含义

    procs:
      r 表示运行和等待CPU时间片的进程数,这个值如果长期大于系统CPU个数,说明CPU不足。
      b 表示等待资源的进程数,比如正在等待I/O、或者内存交换等。
    memory:
      swpd 虚拟内存使用量。即切换到内存交换区的内存数量。如果大于0,表示机器物理内存不足。
      free 空闲物理内存
      buff 作为buff使用的内存
      cache 作为cache使用的内存
    swap:
      si  每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够或者内存泄露了,要查找耗内存进程解决掉。
      so  每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。
    一般情况下,si、so的值都为0,如果si、so的值长期不为0,则表示内存不足。
    IO: bi 块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte bo 块设备每秒发送的块数量
    设置的bi+bo参考值为1000,如果超过1000,而且wa值较大,则表示系统磁盘IO有问题,应该考虑提高磁盘的读写性能。 system:
    in 每秒CPU的中断次数,包括时间中断。 cs 每秒上下文切换次数
    这两个值越大,内核消耗的CPU就越多 cpu: us 用户进程消耗的CPU时间百分比,us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,就需要考虑优化程序或算法 sy 内核进程消耗的CPU时间百分比,sy值如果太高,说明内核消耗CPU资源很多,例如是IO操作频繁。
    id CPU处于空闲状态的时间百分比。 wa io等待所占用的时间百分比,wa值越高,说明IO等待越严重,根据经验,wa的参考值为20%,如果wa超过20%,说明IO等待严重,引起IO等待的
    原因可能是磁盘大量随机读写造成的,也可能是磁盘或者磁盘控制器的带宽瓶颈造成的(主要是块操作)

    重点关注参数

    r 最好不要超过cpu总数,长期大于的话需要重点关注
    b 长期很高时需要注意
    swpd 最好不要大于0,如果大于0,接着看si,so,如果为0或很低的话,没事
    si,so 数值比较高,并且在不断变化时,说明内存不够了,内存中的数据频繁交换到交换分区中,这往往对系统性能影响极大
    bi,bo 数值高表示io压力大
    还有CPU项中us、sy和id列的值。

    参考资料

      1、Linux 系统实时监控工具vmstat

     2、细说LinuxX系统优化-实践篇

  • 相关阅读:
    02_5if switch分支与循环语句
    02_4运算符
    02_3程序格式
    Shell脚本调用ftp上传文件
    02_2数据类型转换
    02_1标识符_关键字_数据类型
    01_3Java Application初步
    01_2Java开发环境的下载 安装 配置
    Mac 安装MySQL
    用 Homebrew 带飞你的 Mac
  • 原文地址:https://www.cnblogs.com/linyfeng/p/7707843.html
Copyright © 2011-2022 走看看