zoukankan      html  css  js  c++  java
  • 关于centos 7 内存使用率监控

    参考 https://blog.csdn.net/weixin_33769207/article/details/91633529?spm=1001.2101.3001.6650.5&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-5.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-5.no_search_link

    debian之类的系统认为:

    可用内存=free的内存+cached的内存+buffers的内存

    SUSE之类的系统则认为:

    可用内存=free的内存+cached的内存+buffers的内存+SReclaimable的内存

    cat /proc/meminfo 信息如下:

    需要使用的指标有:MemTotal,MemFree,Buffers,Cached,SReclaimable

    MemTotal:总内存大小
    MemFree: 空闲内存大小
    Buffers和Cached:磁盘缓存的大小
    SReclaimable:在linux内核中会有许多小对象,这些对象构造销毁十分频繁,比如i-node,dentry。这么这些对象如果每次构建的时候就向内存要一个页,而其实际大小可能只有几个字节,这样就非常浪费,为了解决这个问题就引入了一种新的机制来处理在同一页框中如何分配小存储器区,这个机制可以减少申请和释放内存带来的消耗,这些小存储器区的内存称为Slab。meminfo文件中标识了Slab的大小,而SReclaimable是指可收回Slab的大小。

    Buffers和Cached的区别:

    buffers 是指用来给块设备做的缓冲大小,他只记录文件系统的metadata以及 tracking in-flight pages.
    cached 是用来给文件做缓冲。
    buffers 是用来存储目录里面有什么内容,权限等等。
    而cached直接用来记忆我们打开的文件,比如先后执行两次命令#man X ,你就可以明显的感觉到第二次的开打的速度快很多。
    而buffers随时都在增加,比如先后两次使用ls /dev后,就会发现第二次执行的速度会较第一次快。
    这就是buffers/chached的区别。

    实战

    prometheus监控 内存使用率的监控指标
    之前是如下,内存使用率一直报警

      - expr: round((100-(node_memory_Buffers_bytes+node_memory_Cached_bytes+node_memory_MemFree_bytes)/node_memory_MemTotal_bytes*100),0.01)
        record: memory:usage
        labels:
          desc: "内存消耗百分比"
          unit: "%"
    

    后来换成了如下,把SReclaimable加进去好点了

      - expr: round((100-(node_memory_Buffers_bytes+node_memory_Cached_bytes+node_memory_MemFree_bytes+node_memory_SReclaimable_bytes)/node_memory_MemTotal_bytes*100),0.01)
        record: memory:usage
        labels:
          desc: "内存消耗百分比"
          unit: "%"
    

    如下命令释放内存
    参考资料: https://blog.csdn.net/XD_hebuters/article/details/79608136

    To free pagecache:

    sync;echo 1 > /proc/sys/vm/drop_caches
    

    To free reclaimable slab objects (includes dentries and inodes):

    sync;echo 2 > /proc/sys/vm/drop_caches
    

    To free slab objects and pagecache:

    sync;echo 3 > /proc/sys/vm/drop_caches
    
    本人水平有限,还在不断学习中 难免有很多错误或者遗漏,望见谅
  • 相关阅读:
    git 工作流程
    微信小程序 scroll-view 水平滚动使用
    微信小程序 tree组件
    微信小程序各类生命周期
    JS/Jquey 图片链接点击直接下载
    JS/Jquery 表单方式提交总结
    Nodejs 发送邮件 激活邮箱
    搭建Nodejs环境 创建Express应用
    break、continue、return区别
    shell(一)
  • 原文地址:https://www.cnblogs.com/faberbeta/p/15433078.html
Copyright © 2011-2022 走看看