linux下我的内存在哪里?

linux下我的内存在哪里?

我试图找到我的记忆:

我使用程序mema.py 根据程序使用的内存 22% (3713500 kb) 计算进程的内存使用量 (ps aux --sort -rss) 总和 (我得到 16Gb RAM )

自由的报告:

             total       used       free     shared    buffers     cached
Mem:      16431416   14773344    1658072     440524     234416    1780688
-/+ buffers/cache:   12758240    3673176
Swap:     43528916          0   43528916

(总共使用了 14773344 kb) - (1780688 缓存) - (234416 缓存缓冲区) - (3713500 应用程序) = 9044740

那么9Gb在哪里?它们的用途和用途是什么?

debian 8.8 Linux acrhlx 3.16.0-4-amd64 #1 SMP Debian 3.16.43-2 (2017-04-30) x86_64 GNU/Linux

更新 我发现我的内存被 ZFS 消耗了,它没有在缓冲区+缓存中报告,不确定它是否有错误或功能 更多关于采埃孚

答案1

使用过的并不意味着你所认为的那样;使用的内存包括正在使用但可以使用的内存(即当前未被应用程序使用)。欲了解详细信息,请阅读

此外,我不相信这ps aux --sort -rss会说明一切。例如,我看不到其中的内核(请参阅cat /proc/meminfo|grep Slab)...或内核模块(请参阅 的第二列cat /proc/modules)。详情请参阅这个答案Unix 和 Linux 堆栈交换顺便说一句,在我看来,这正是这个问题真正所属的地方。

答案2

缓冲区+缓存中未报告 ZFS 模块

我更新了我的内存分析器工具来帮助发现类似的问题

无错误内存

相关内容