跟踪 Linux 上的内存分配

跟踪 Linux 上的内存分配

有没有办法跟踪内核执行的内存分配?我发现了一篇文章,其中在内核日志中跟踪内存分配(我猜)。它是这样的:

[ 3830.215613] [HIGHERORDER_DEBUG] : __alloc_pages_nodemask is called by process <PID = 1168, NAME = Xorg> !!!

也许这是一些定制的内核构建......

有没有办法可以以这种方式跟踪内存分配?也许有一些工具可以做到这一点?我正在使用 RHEL7。

答案1

这不是完整的答案,但可能会给您一个开始寻找的方向。

这是一个 RAM 取证框架,可以为您提供一些跟踪工具。我只使用了一点点,但这将为您提供一个内核模块,使您可以对 RAM 中发生的情况进行大量访问。

http://www.volatilityfoundation.org/releases

实际上...我还发现这篇文章有一些用于记录内核内存分配的启动时选项(以及更多详细信息)。也许这对你有用?

trace_event=kmem:kmalloc,kmem:kmem_cache_alloc,kmem:kfree,kmem:kmem_cache_free

https://elinux.org/Kernel_dynamic_memory_analysis

相关内容