嵌入式Linux系统Cache内存占用过高问题的分析

问题背景:

        在嵌入式Linux系统产品稳定性测试过程中,我们最关心也是最重要的问题是内存泄漏问题。

        一般嵌入式产品内存容量比较有限,我们除了分析代码层次的内存泄漏缺陷外,还实时监测系统运行的内存状态。以免过度使用内存导致系统将进程kill掉的情况。本文主要分析下Cache内存占用的原因,解决办法以及对系统运行的影响;

问题分析:

在嵌入式Linux系统中使用free命令可以看到如下信息:

# free
             total       used       free     shared    buffers     cached
Mem:        247400     123764     123636      33236       7728      63292
-/+ buffers/cache:      52744     194656
Swap:            0          0          0
# 

可以简单看到内存的总容量、free容量、缓存占用的buffers、cached容量;

Linux下内存占用多的原因和机制为:

        当linux第一次读取一个文件运行时,一份放到一片内存中cache起来,另一份放入运行程序的内存中,正常运行,当程序运行完,关闭了,cache中的那一分却没有释放,第二次运行的时候,系统先看看在内存中是否有一地次运行时存起来的cache中的副本,如果有的话,直接从内存中读取,那样,速度就快多了。

        说明这种情况的很典型的例子是启动fir

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值