• vmstat含义、别人的监控指标经验总结


    类别

    项目

    含义

    说明

    Procs(进程)

    r

    等待执行的任务数

    正在等待运行的进程数

    B

    等待IO的进程数量

     b:The number of processes in uninterruptible sleep.

    处于不可中断睡眠状态的进程数

    Memory(内存)

    swpd

    已使用虚拟内存大小,单位k

    free

    剩余的物理内存

    buff

    已用的buff大小,对块设备的读写进行缓冲

     设备和设备之间的缓冲

    cache

    已用的cache大小,文件系统的cache

     cpu和内存之间的缓冲

    Swap

    si

    每秒从交换区写入内存的大小(单位:kb/s)

     从磁盘写到交换区的大小.这个值是一个比率,即每秒读了多少KB.

    so

    每秒从内存写到交换区的大小

     交换到磁盘的大小.这个值是一个比率,即每秒读了多少KB.

    IO

    bi

    每秒读取的块数(读磁盘)

    这个值是一个比率,即每秒读了多少BLOCK

    bo

    每秒写入的块数(写磁盘)

     这个值是一个比率,即每秒写了多少BLOCK.

    如果bi、bo值长期不为0,说明内存可能有问题,因为没有使用到缓存(当然,不排除直接I/O的情况,但是一般很少有直接I/O的)

    system

    in

    每秒中断数,包括时钟中断

    这两个值越大,会看到由内核消耗的cpu(即 sy)时间会越多

    cs

    进程上下文切换次数

    CPU(以百分比表示)

    Us

    用户进程执行消耗cpu时间百分比(user time)

    us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期超过50%的使用,那么我们就该考虑优化程序算法或其他措施了

    Sy

    系统进程消耗cpu时间百分比(system time)

    sys的值过高时,说明系统内核消耗的cpu资源多,这个不是良性的表现,我们应该检查原因。

    Id

    cpu空闲时间(包括IO等待时间)百分比

    st steal time。来自于一个虚拟机偷取的CPU时间的百分比。可以忽略。  

    free、vmstat、top“三贱合璧”追查真相  

    (原文:https://blog.csdn.net/reliveIT/article/details/46000367 )

    1. free
        当系统出问题,追查至内存的时候,要判定内存是否是异常源,先看free指令数据。

        先看交换区swap的使用情况,因为linux的内存机制,当swap不够用的时候,系统会出现假死,当然真的假死的时候,你就看不到了;但是在假死前期,你还是能看到数据,做一些补救工作。如果交换区不正常,则进入vmstat指令(下节);如果正常,则看内存空闲情况,主要关注linux内存机制的free和物理内存的buffers和cached,正常则不用追查,否则进入vmstat做进一步的判断。

        当然这里只是列举一般情况的追查,更多的还是要依靠线上经验。

    2. vmstat
        当交换区不够用的时候,物理内存基本上也到瓶颈了。如果内存基本耗光了,而系统因此被拖的很慢,你就可以看vmstat中swap是否存在大量的读写,假死前期还是能看到大量读写的。如果出现大量交换区读写,说明当前内存瓶颈了,存在大量的换入换出,导致CPU空耗在IO上面。这时候需要恢复系统,则进入top指令。

    3. top
        top能看到当前进程的实时数据,其实主要就是看谁消耗太多内存资源,判断是否能手动kill然后释放资源的问题。

    监控指标 

    (原文:https://blog.csdn.net/hankerzero/article/details/56520698 )
    一般us+sy 在单用户系统中不大于90,在多用户系统中不大于80.

    CPU利用率。根据经验来看,用户空间进程占用CPU比例在 65-70%之间,内核(系统)CPU比例在30%-35%之间,空闲比例在0%-5%之间。一般不能超过这个比例,超过这个比例,系统性能就会降低,平均负载升高,这点将会在下面的测试中看到。
    进程上下文切换。上下文切换和CPU利用率应该联系起来,如果CPU利用率低,那么上下文切换稍高点也能接受。上下文切换也是需要消耗CPU资源的,频繁的切换必将使得CPU利用率升高。
    运行队列中等待运行的进程数。每个CPU核心中等待处理的进程数不应该超过3个线程/进程。如4核心的机器,那么队列的最大值应该不超过12个。
    平均负载。平均负载值(load average)是平均每核心CPU的负载应该控制在0.7。最好不要超过1.

      一般,我是使用top命令和vmstat命令一起看,top命令可以看到整体情况,也可以看到每个任务消耗资源的情况。使用vmstat命令查看队列中的任务数、进程上下文切换。

  • 相关阅读:
    不务正业系列-浅谈《过气堡垒》,一个RTS玩家的视角
    [LeetCode] 54. Spiral Matrix
    [LeetCode] 40. Combination Sum II
    138. Copy List with Random Pointer
    310. Minimum Height Trees
    4. Median of Two Sorted Arrays
    153. Find Minimum in Rotated Sorted Array
    33. Search in Rotated Sorted Array
    35. Search Insert Position
    278. First Bad Version
  • 原文地址:https://www.cnblogs.com/nnniki/p/10980836.html
Copyright © 2020-2023  润新知