linux meminfo cache计算方式

40 篇文章 2 订阅

aarch32 linux4.14

static int meminfo_proc_show(struct seq_file *m, void *v) 
{
    struct sysinfo i;
......
    si_meminfo(&i);
    si_swapinfo(&i);

    cached = global_node_page_state(NR_FILE_PAGES) -
            total_swapcache_pages() - i.bufferram;
    if (cached < 0)
        cached = 0;


    available = si_mem_available();

    show_val_kb(m, "MemTotal:       ", i.totalram);
    show_val_kb(m, "MemFree:        ", i.freeram);
    show_val_kb(m, "MemAvailable:   ", available);
    show_val_kb(m, "Buffers:        ", i.bufferram);
    show_val_kb(m, "Cached:         ", cached);
......
}

cached = global_node_page_state(NR_FILE_PAGES) - total_swapcache_pages() - i.bufferram;

NR_FILE_PAGES 表示所有缓存页的总和包含了cache 和buffers

total_swapcache_pages ,swap cache是交换分区的缓存,匿名页被swap out 和swap in的缓存的位置

bufferram 是块设备的缓存页

page cache 对于文件页的缓存(加速对磁盘上文件的读写),例如mmap 文件,可执行文件和库文件的代码段,open的文件

所以cache可以认为是文件页的缓存,这部分是可以被丢弃并回收的,后面再用的时候重新建立缓存

参考自 http://linuxperf.com/?p=32

oom中的log  total pagecache pages 会打印NR_FILE_PAGES

show_mem
-->
show_free_areas
{
......
    printk("%ld total pagecache pages\n", global_node_page_state(NR_FILE_PAGES));
......
}

Mem-Info:
active_anon:26820 inactive_anon:0 isolated_anon:0
active_file:10 inactive_file:5 isolated_file:0
unevictable:11293 dirty:0 writeback:0 unstable:0
slab_reclaimable:1493 slab_unreclaimable:1802
mapped:3528 shmem:0 pagetables:202 bounce:0
free:262 free_pcp:0 free_cma:4
Node 0 active_anon:107280kB inactive_anon:0kB active_file:40kB inactive_file:20kB unevictable:45172kBs
Normal free:1048kB min:1476kB low:1844kB high:2212kB active_anon:107296kB inactive_anon:0kB active_fiB
lowmem_reserve[]: 0 0 0 
Normal: 17*4kB (UM) 2*8kB (U) 37*16kB (M) 5*32kB (M) 1*64kB (M) 0*128kB 1*256kB (M) 0*512kB 0*1024kB B
11299 total pagecache pages

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shenhuxi_yu

感谢投币,继续输出

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值