美文网首页
51节 2021-03-10服务器性能分析指令vmstat

51节 2021-03-10服务器性能分析指令vmstat

作者: testerPM | 来源:发表于2021-03-12 14:53 被阅读0次

    1.ps

    ps不是性能分析的工具,只是需要用到,这里顺便写一下。


    image.png

    ps是用来获取进程的状态,top是用来查看进程的资源使用情况

    2.vmstat

    2.1 vmstat简单介绍

    vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监控。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。vmstat工具提供了一种低开销的系统性能观察方式。因为vmstat本身就是低开销工具,在非常高负荷的服务器上,你需要查看并监控系统的健康情况,在控制窗口还是能够使用vmstat输出结果。

    相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)

    2.2 vmstat用法介绍

    要使用vmstat命令,首先第一步:要先安装sysstat工具
    yum install sysstat -y

    1.命令格式:

    vmstat [-a] [-n] [-S unit] [delay [ count]]

    vmstat [-s] [-n] [-S unit]

    vmstat [-m] [-n] [delay [ count]]

    vmstat [-d] [-n] [delay [ count]]

    vmstat [-p disk partition] [-n] [delay [ count]]

    vmstat [-f]

    vmstat [-V]

    2.命令功能:

    用来显示虚拟内存的信息

    3.命令参数:

    -a:显示活跃和非活跃内存

    -f:显示从系统启动至今的fork数量 。

    -m:显示slabinfo

    -n:只在开始时显示一次各字段名称。

    -s:显示内存相关统计信息及多种系统活动数量。

    delay:刷新时间间隔。如果不指定,只显示一条结果。

    count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。

    -d:显示磁盘相关统计信息。

    -p:显示指定磁盘分区统计信息

    -S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes)

    -V:显示vmstat版本信息。


    image.png image.png
    1. vmstat 不加时间,只输出一行数据(默认只采集一次数据,所以下图只输出一行数据)
    [root@vircent7 ~]# vmstat
    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 428140   2108 596552    0    0    55     4   42   77  0  0 99  0  0
    [root@vircent7 ~]# 
    
    
    1. vmstat 加时间。(动态输出数据)


      image.png

      这表示vmstat每3秒采集数据,一直采集,直到我结束程序,按下ctr+c就可以结束程序。

    3.vmstat 加时间 加采样次数
    如下图: 每3秒输出一组数据且只采样2组数据


    image.png

    上图每列含义介绍:

    第一列:procs:用来显示进程信息
    r: 代表目前有多少个进程在等待。即展示了正在执行和等待CPU资源的任务个数。当这个值超过了
    CPU数目,就会出现CPU瓶颈了
    b: 代表目前有多少进程是不可中断的休眠。比如,某个员工上班不干活,休眠状态,但是你又不能开除 (如果该值一直都很大,说明IO比较繁忙,处理较慢)

    第二列:memory
    swpd:虚拟内存已使用的大小;如果swpd的值不为0,但是si,so的值长期为0,这种情况不会影响系统性能
    free:空闲的物理内存的大小
    buff:已使用的buff大小,对块设备的读写进行缓冲
    cache:已使用的cache大小,文件系统的cache(如果cache的值大的时候,说明cache处的文件数多,如果频繁访问到的文件都能被cache处,那么磁盘的读IO bi会非常小;)

    第三列:swap
    si:交换内存使用,由磁盘调入内存(即虚拟内存读到物理内存,每秒从交换区写到内存的大小)
    so:交换内存使用,由内存调入磁盘(即物理内存读到虚拟内存,每秒写入交换区的内存大小)

    swap(交换空间,单位:KB);内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。有时我们看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,不能光看这一点,还要结合si和so,如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的

    第四列: io
    bi:从块设备读入的数据总量(读磁盘) (KB/s),
    bo:写入到块设备的数据总量(写磁盘) (KB/s)

    第五列:system
    in:每秒产生的中断次数
    cs:每秒产生的上下文切换次数
    上面这2个值越大,会看到由内核消耗的CPU时间会越多

    第六列:cpu
    us:用户进程消耗的CPU时间百分比.(us 的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超过50% 的使用,那么我们就该考虑优化程序算法或者进行加速了)
    sy:内核进程消耗的CPU时间百分比(sy 的值高时,说明系统内核消耗的CPU资源多,这并不是良性的表现,我们应该检查原因。)
    id:空闲
    wa:IO等待消耗的CPU时间百分比(wa 的值高时,说明IO等待比较严重,这可能是由于磁盘大量作随机访问造成,也有可能是磁盘的带宽出现瓶颈(块操作))
    st:

    内存不足的表现:free memory急剧减少,回收buffer和cache也无济于事,大量使用交换分区(swpd),页面交换频繁(swap),读写磁盘数量(io)增多,缺页中断(in)增多,上下文切换(cs)次数增多,等待IO的进程数(b)增多,大量cpu时间用于等待IO(wa)

    相关文章

      网友评论

          本文标题:51节 2021-03-10服务器性能分析指令vmstat

          本文链接:https://www.haomeiwen.com/subject/nkcoqltx.html