• centos8平台使用vmstat监控系统


    一,vmstat的用途和特点:

    vmstat 是一个常用的系统性能分析工具,主要用来分析系统的内存使用情况,也常用来分析 CPU 上下文切换和中断的次数。

    相对于 iostat 来说,vmstat 可以同时提供 CPU、内存和 I/O 的使用情况。

    说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

             对应的源码可以访问这里获取: https://github.com/liuhongdi/

     说明:作者:刘宏缔 邮箱: 371125307@qq.com

    二,vmstat所属的包

    1,查看所属的包

    [root@blog ~]# whereis vmstat
    vmstat: /usr/bin/vmstat /usr/share/man/man8/vmstat.8.gz
    
    [root@blog ~]# rpm -qf /usr/bin/vmstat
    procps-ng-3.3.15-1.el8.x86_64

    2,默认vmstat应该已安装到了centos系统中,

       如果找不到命令,可以用yum安装:

    [root@blog ~]# yum install procps-ng

    三,查看vmstat的版本和帮助

    1,查看版本

    [root@blog ~]# vmstat --version
    vmstat from procps-ng 3.3.15

    2,查看帮助

    [root@blog ~]# vmstat --help
    Usage:
     vmstat [options] [delay [count]]
    
    Options:
     -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
    
    For more details see vmstat(8).

    四,例子一:查看默认的输出信息

    1,# 每隔5秒输出1组数据

    [root@blog ~]# vmstat 5
    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      0 1435780   2668 13109308    0    0     0     1    1    1  0  0 100  0  0
     0  0      0 1435712   2668 13109324    0    0     0     0 1533 1786  0  0 100  0  0
     0  0      0 1435712   2668 13109324    0    0     0     0 1562 1826  0  0 100  0  0

    2,输出数据的说明:

    procs:

    r(Running or Runnable):就绪队列的长度,也就是正在运行和等待 CPU 的进程数。

    说明:如果等待运行的进程数越多,意味着CPU非常繁忙

    b(Blocked):处于不可中断睡眠状态的进程数。意味着被阻塞的进程的数量

    system:

    cs(context switch)是每秒上下文切换的次数。

    in(interrupt)则是每秒中断的次数。

    memory:

    swpd: 使用的虚拟内存的大小

    free:    空闲的物理内存的大小

    buff:    用做buffer的内存大小

    cache:   用做cache的内存大小

    swap

    si: 从磁盘交换到内存的交换页数量,单位:KB/秒

        Amount of memory swapped in from disk 

     so: 从内存交换到磁盘的交换页数量,单位:KB/秒

         Amount of memory swapped to disk (/s).

    io

     bi: 每秒从块设备接收到的块数,单位:块/秒 也就是读块设备

          Blocks received from a block device (blocks/s).

    bo: 每秒发送到块设备的块数,单位:块/秒  也就是写块设备。

           Blocks sent to a block device (blocks/s).

    cpu:

           us: 用户CPU时间(非内核进程占用时间)(单位为百分比)

                 us的值比较高时,说明用户进程消耗的CPU时间多

           sy: 系统使用的CPU时间(单位为百分比)

               sy的值高时,说明系统内核消耗的CPU资源多 

           id: 空闲的CPU的时间(百分比)

           wa: 等待IO的CPU时间

                 wait越大则机器io性能就越差。说明IO等待比较严重 

           st: 代表当系统运行在虚拟机中的时候,被其他虚拟机占用的 CPU 时间。

                 Time stolen from a virtual machine

    五,例子二:查看活跃和非活跃内存

    说明:-a 显示活跃和非活跃内存,所显示的内容除增加inact和active

    [root@blog ~]# vmstat -a
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
     r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
     0  0      0 1426684 10660696 3032584    0    0     0     1    1    1  0  0 100  0  0

    输出字段的说明:

    inact:表示非活跃内存,也就是不常访问的内存,有可能会被系统回收。

    active: 表示活跃内存,也就是最近使用过的内存,一般不会被系统回收。

    六,例子三:统计磁盘的读/写信息

    说明:-d参数:统计磁盘信息

    [root@blog ~]$ vmstat -d
    disk- ------------reads------------ ------------writes----------- -----IO------
           total merged sectors      ms  total merged sectors      ms    cur    sec
    vda    17722     24 1261334   16251 1699722 146934 54970224 2269699      0    412
    vdb      152      0    6576     107      0      0       0       0      0      0

     说明:数据来自/proc/diskstats

    七,例子四:查看slab信息:

    说明:-m参数:统计slab信息

    [root@blog ~]# vmstat -m
    Cache                       Num  Total   Size  Pages
    nf_conntrack                300    300    320     25
    xfs_dqtrx                     0      0    528     31
    xfs_dquot                     0      0    504     16
    xfs_rui_item                  0      0    696     23
    xfs_rud_item                 92     92    176     23
    xfs_inode                 95230 100480   1024     16
    xfs_efd_item                198    234    440     18
    xfs_buf_item                240    300    272     30
    xfs_trans                   561    561    232     17 
    
    ...

    说明:数据来自 /proc/slabinfo

    八,例子五:查看内存统计信息:

    说明: -s参数:统计内存信息

    [sysop@blog ~]$ vmstat -s
         15723788 K total memory
          1180776 K used memory
          3029904 K active memory
         10660692 K inactive memory 
    
    ...

    说明:数据来自/proc/meminfo

    九,例子六:显示从系统启动至今的fork数量

    说明: -f参数:统计fork的数量

    [root@blog ~]$ vmstat -f
           403762 forks

    说明:linux下创建进程的系统调用是fork

    十,查看centos版本 

    [root@blog ~]# cat /etc/redhat-release
    CentOS Linux release 8.0.1905 (Core) 
  • 相关阅读:
    分布式缓存技术之Redis_03分布式redis
    Spring 二、400行代码手写初体验Spring V1.0版本
    Spring 一、各级架构与依赖关系
    Java正则表达式基础学习
    JAVA开发:SpringBoot多数据源配置
    Spring 单例模式实现源码分析
    Spring 使用的设计模式用哪些
    Spring之@Autowired和@Resource
    Spring的优缺点
    MySQL支持的事物隔离级别以及悲观锁和乐观锁原理和应用场景
  • 原文地址:https://www.cnblogs.com/architectforest/p/12631941.html
Copyright © 2020-2023  润新知