[实践篇]13.9 如何使用gcore(ramdump)排查内存黑洞?
Posted 高桐@BILL
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[实践篇]13.9 如何使用gcore(ramdump)排查内存黑洞?相关的知识,希望对你有一定的参考价值。
【QNX Hypervisor 2.2用户手册】目录(完结)
通常情况下我们使用dumpsys meminfo,还是procrank都可以找出内存占用失控的进程。当系统发生oom_panic时,我们同样有很多种手段来分析内存布局,如前面所说的memory.txt信息;但是极少数情况下我们会发现内存布局很平滑,各个进程并没有“偷吃”。但是同样可用内存以所剩无几,有可能是ion占用高,又或者是某个内核线程内存泄漏。且oom_killer或激进的lmk查杀策略都无法满足内存回收的需求,那么此时则需要分析ramdump中的page_tracking信息。
这种情况下的内存黑洞排查需要page_tracking.txt和tasks.txt,以及开发的简单工具pagetacking_parser.py。
这个工具和之前的pageowner解析工具类似,大约花费了一整天的时间编写,适配和调试。
一,page_tracking.txt
该日志每个segment形如pageowner信息,如下:
PFN : 0x80600-0x80600 Page : 0xffffffbf0b018000 Order : 0 PID : 1 ts_nsec 638827501
[<ffffffa9be91ba7c>] register_early_stack+0x34
[<ffffffa9be91ae1c>] init_page_owner+0x3c
[<ffffffa9c062f344>] page_ext_init+
以上是关于[实践篇]13.9 如何使用gcore(ramdump)排查内存黑洞?的主要内容,如果未能解决你的问题,请参考以下文章
[实践篇]13.9 如何使用gcore(ramdump)排查内存黑洞?