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_analytic

おすすめ記事