Linux内存从0到1学习笔记(9.6,内存优化调试之page_owner拆解)

Posted 高桐@BILL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux内存从0到1学习笔记(9.6,内存优化调试之page_owner拆解)相关的知识,希望对你有一定的参考价值。

写在前面

前面我们梳理过,page owner用于跟踪每个页面的分配细节。如上图,当有内存被分配时,内存分配调用栈、进程ID、分配时间、掩码信息等都会被记录下来。

因此我们可以通过分析这些信息来了解运行时情况下的内存布局;

但是,page_owner信息很多,有些时候抓出来的信息有几百兆,如果我们每个调用栈都去看一遍,效率太低,因此需要借助一些工具对数据进行解析。

一、page_owner_sort

排序命令如下:

page_owner_sort page_owner.txt sorted_page_owner.txt

排序后的调用栈信息如下:

42051 times:表示相同的调用栈信息共分配了42051次。

order:表示当前所分配内存页的阶,0阶表示页大小4Kb;

GFP_HIGHUSER_MOVABLE:分配掩码

pid:任务ID(线程);

二、解析

可通过关键内存分配函数进行拆

以上是关于Linux内存从0到1学习笔记(9.6,内存优化调试之page_owner拆解)的主要内容,如果未能解决你的问题,请参考以下文章

Linux内存从0到1学习笔记(九,内存优化调试之三 - 内存拆解)--- 持续更新

Linux内存从0到1学习笔记(九,内存优化调试之一 - kswapd0)

Linux内存从0到1学习笔记(九,内存优化调试之三 - 使用page owner调试内存黑洞)

Linux内存从0到1学习笔记(9.5,内存优化调试之记录pid到page_owner)

Linux内存从0到1学习笔记(9.10 内存优化调试之panic_on_oom介绍

Linux内存从0到1学习笔记(9.7 内存优化调试之page_owner内存分配堆栈详解)---更新中