Linuxでslabtopが報告したさまざまなカーネルオブジェクトのメモリキャッシュの説明をどこで取得できるかを知っている人はいますか?たとえば、背中は何filp
ですかradix_tree_node
?
答え1
背景
報告されたボードは、slabtop
他のモジュールと保持するオブジェクトの類似性に基づいて重複する単一のタイプに結合されるため、特定のカーネルモジュールに数量化することは困難です。
特に、最新のLinuxでは、slabinfoに表示される名前はデフォルトでヒントです。カーネルの現在のスラブアロケータ複数のボードタイプが十分に似ている場合は、一緒にマージされます。 5つの異なるサブシステムがすべて特別な属性なしで(異なる)128バイトのオブジェクトを割り当てようとする場合は、それぞれ別々のlabinfoエントリを持つ別々のスラブタイプを取得せず、すべて1つのスラブタイプにマージしてslabinfoエントリを形成します。 。 slabinfoエントリは通常、他のすべてのエントリの使用も含むことを直接暗示せず、そのうちの1つ(おそらく最初に設定されるエントリ)の名前を表示します。
(他のものはslabinfoにまったく現れません。)
この記事では、上記のマージによってスラブキャッシュタイプがまったく表示されないことが多いことについて説明します/proc/slabinfo
。ここを見ると、この効果のいくつかを確認できます/sys/kernel/slab
。このディレクトリは、どのスラブキャッシュがシンボリックリンクで他のキャッシュとマージされるかを示します。
左の画像は、/sys/kernel/slab
別のボードにマージされたディレクトリへのリンクを示しています(薄い青)。右の画像は、スラブにマージさ:t-0000256
れたすべてのキャッシュを示しています。
トラックボード
/sys/kernel/slab
ディレクトリを見続けると、次のようになります。
$ ls -l /sys/kernel/slab/ | grep filp
lrwxrwxrwx 1 root root 0 Aug 5 21:23 filp -> :t-0000256
filp
お問い合わせいただいた内容です。詳しくは、slabinfo
CLIをインストールしてください。
ボード情報
CentOS 7.xでさらに並べ替えることができるこのCLIはありませんが、見たいと思うかもしれません。このCLIをコンパイルすると、slabinfo -a
次のボードに関連するエイリアスを示す情報にアクセスできます/sys/kernel/slab
。私はあなたが探しているこれらのエイリアスが相関に役立つと信じていますslabtop
。