码迷,mamicode.com
首页 > 其他好文 > 详细

linix free 内存计算的核心处理代码

时间:2020-09-17 15:36:02      阅读:38      评论:0      收藏:0      [点我收藏+]

标签:data-   mod   class   关于   number   pre   solution   href   问题   

如果大家使用了node exporter 进行系统的监控,肯定会存在关于系统可用内存以及内存使用率的问题
node exporter 提供了好多指标,但是关于内存的基本都是通过/pro/meminfo 获取的,但是不同linux 内核
对于数据的处理是不一样的,以下是关于free 命令内存计算的核心规则,看看还是比较有用的,至少对于
如果计算会清晰很多

计算核心方法

 
 if (!kb_main_available) {
    if (linux_version_code < LINUX_VERSION(2, 6, 27))
      kb_main_available = kb_main_free;
    else {
      FILE_TO_BUF(VM_MIN_FREE_FILE, vm_min_free_fd);
      kb_min_free = (unsigned long) strtoull(buf,&tail,10);
?
      watermark_low = kb_min_free * 5 / 4; /* should be equal to sum of all ‘low‘ fields in /proc/zoneinfo */
?
      mem_available = (signed long)kb_main_free - watermark_low
      + kb_inactive_file + kb_active_file - MIN((kb_inactive_file + kb_active_file) / 2, watermark_low)
      + kb_slab_reclaimable - MIN(kb_slab_reclaimable / 2, watermark_low);
?
      if (mem_available < 0) mem_available = 0;
      kb_main_available = (unsigned long)mem_available;
    }
  }

参考资料

https://access.redhat.com/solutions/406773
https://gitlab.com/procps-ng/procps

linix free 内存计算的核心处理代码

标签:data-   mod   class   关于   number   pre   solution   href   问题   

原文地址:https://www.cnblogs.com/rongfengliang/p/13619181.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!