zoukankan      html  css  js  c++  java
  • 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命令查看队列中的任务数、进程上下文切换。

  • 相关阅读:
    Java学习8.31
    Java学习8.30
    Java学习8.29
    Java学习8.28
    Java学习8.27
    Java学习8.26
    242. Valid Anagram 有效的字符串
    680. Valid Palindrome II 对称字符串-可删一个字母版本
    151. Reverse Words in a String翻转一句话中的单词
    155. Min Stack 155.最小栈
  • 原文地址:https://www.cnblogs.com/nnniki/p/10980836.html
Copyright © 2011-2022 走看看