免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1214 | 回复: 1

[应用] Linux系统中/proc/meminfo信息的疑问 [复制链接]

论坛徽章:
0
发表于 2016-03-03 08:57 |显示全部楼层
基于ARM9处理器写了一个简单的Linux服务器程序,在测试中查看/proc/meminfo日志,发现了一个很奇怪的问题。
这是服务器程序刚启动时的meminfo日志:
MemTotal:          61180 kB
MemFree:           18992 kB
Buffers:               0 kB
Cached:            24452 kB
SwapCached:            0 kB
Active:            23884 kB
Inactive:          14800 kB
Active(anon):      14316 kB
Inactive(anon):        4 kB
Active(file):       9568 kB
Inactive(file):    14796 kB
Unevictable:           4 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:         14264 kB
Mapped:             4824 kB
Shmem:                84 kB
Slab:               2312 kB
SReclaimable:        752 kB
SUnreclaim:         1560 kB
KernelStack:         288 kB
PageTables:          120 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:       30588 kB
Committed_AS:      34220 kB
VmallocTotal:     958464 kB
VmallocUsed:         424 kB
VmallocChunk:     712240 kB

这是程序运行两天后的meminfo日志:
MemTotal:          61180 kB
MemFree:            2032 kB
Buffers:               0 kB
Cached:            25740 kB
SwapCached:            0 kB
Active:            42620 kB
Inactive:          12828 kB
Active(anon):      29800 kB
Inactive(anon):        4 kB
Active(file):      12820 kB
Inactive(file):    12824 kB
Unevictable:          12 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:         29748 kB
Mapped:             4832 kB
Shmem:                84 kB
Slab:               2464 kB
SReclaimable:        896 kB
SUnreclaim:         1568 kB
KernelStack:         280 kB
PageTables:          152 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:       30588 kB
Committed_AS:      49948 kB
VmallocTotal:     958464 kB
VmallocUsed:         424 kB
VmallocChunk:     712240 kB

按照对meminfo的解释,应用程序可用内存是MemFree+Buffers+Cached,那么我的程序的可用内存由开始时的43444KB减少到了27772KB,这说明服务器程序存在内存泄漏。但是我用valgrind对程序进行扫描,又提示不存在确定的泄漏点。
通过对比前后的meminfo日志,我发现随着程序的运行,AnonPages这一项显著增加了(由14264 kB到了29748 kB),增加的空间几乎等于减少的空闲内存,我查了一些资料也没搞明白AnonPages是什么,所以请教诸位,AnonPages到底是什么?与程序的内存泄漏是否有关呢?

论坛徽章:
1
申猴
日期:2014-12-23 16:52:51
发表于 2016-03-08 18:59 |显示全部楼层
AnonPages:未映射页的内存大小

这是对系统而言的。

看程序内存泄露为啥去看 /proc/meminfo ?
用top之类的看一下应用程序是否一直在增长不就可以了么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。




----------------------------------------

大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP