web-dev-qa-db-ja.com

シュリンクスラブとは何ですか?なぜ/ var / log / messagesに表示されるのですか?

Linuxシステムでいくつかのアプリケーションの問題を調査していて、最新の問題の頃にこれに気づきましたが、明確に関連するほど近くにはありません。

Jun  7 17:51:49 localhost kernel: shrink_slab: nr=-155456000
Jun  7 17:51:49 localhost kernel: shrink_slab: nr=-157859400
Jun  7 17:51:49 localhost kernel: shrink_slab: nr=-157833400
Jun  8 06:20:23 localhost kernel: shrink_slab: nr=-284172800

これは何ですか?グーグルは役に立ちません。VMの問題だと思いますが、なぜ突然/ var/log/messagesに表示されるのですか?

編集:解放できるページ数( "nr")が負であるため、これを示していると思います。これはおそらく悪いことです。この効果に対してより有用なメッセージを表示する新しいカーネルのパッチを見つけました。しかし、これが何を意味するのか、または私がそれについて何をする必要があるのか​​はまだわかりません。

3
Steve Kehlet

メッセージは slab allocator によって生成されます。これは、Linuxカーネルが(ユーザースペースプロセスではなく)必要なメモリの部分を管理するために使用するメカニズムです。もともとはSolaris用にJeffBonwickによって書かれましたが、 Bonwick(94)[〜#〜] pdf [〜#〜] )を読むとおそらく最も理解しやすいでしょう。

名前について疑問に思っているなら、彼のブログでボンウィックは最終的に その背後にある物語を明らかにした

Linuxの詳細を見ると、記事 Linuxスラブアロケーターの構造 (リンクは現在無効です。コピーについては archive.orgを参照 )で説明されているはずです。ユーザースペースメモリの管理についても理解したい場合は、 Mel Gorman、Linux Virtual Memory Managerについて でさらに詳しく説明します。

ドイツ語を話す読者のために、 スラブアロケーターに関するドイツ語版ウィキペディアの記事 に優れた紹介があります。

3
Tatjana Heuser