ビジネスサポートポータルアカウントでログイン
syslogに「page allocation failure」のメッセージが記録される  

syslogに「page allocation failure」のメッセージが記録される

    • 更新日:
    • 13 Mar 2020
    • 製品/バージョン:
    • Trend Micro Deep Security All.All
    • Trend Micro Deep Security as a Service All.All
    • OS:
    • Linux すべて
概要
 Deep Security Agent Linux版を使用している環境で、syslogに「page allocation failure」のメッセージが記録されます。原因と対処方法を教えてください。
詳細
Public

現象

Deep Security Agent Linux版を使用している環境で、syslog(/var/log/messagesなど)に次のようなメッセージが記録されます。コールトレースに[dsa_filter]を含む行が表示されます。

Sep 4 11:37:45 server01 kernel: httpd: page allocation failure. order:2, mode:0x20
Sep 4 11:37:45 server01 kernel: Pid: 14364, comm: httpd Tainted: P --------------- 2.6.32-220.el6.x86_64 #1
Sep 4 11:37:45 server01 kernel: Call Trace:
Sep 4 11:37:45 server01 kernel: [<ffffffff8112c257>] ? __alloc_pages_nodemask+0x757/0x8d0
Sep 4 11:37:45 server01 kernel: [<ffffffffa02b7fb4>] ? upd_sched+0x24/0x570 [dsa_filter]
Sep 4 11:37:45 server01 kernel: [<ffffffff81166d92>] ? kmem_getpages+0x62/0x170
Sep 4 11:37:45 server01 kernel: [<ffffffff811679aa>] ? fallback_alloc+0x1ba/0x270
Sep 4 11:37:45 server01 kernel: [<ffffffff811673ff>] ? cache_grow+0x2cf/0x320
Sep 4 11:37:45 server01 kernel: [<ffffffff81167729>] ? ____cache_alloc_node+0x99/0x160
Sep 4 11:37:45 server01 kernel: [<ffffffffa02ce81d>] ? __tb_alloc+0xed/0x360 [dsa_filter]
Sep 4 11:37:45 server01 kernel: [<ffffffff811684f9>] ? __kmalloc+0x189/0x220
Sep 4 11:37:45 server01 kernel: [<ffffffffa02ce81d>] ? __tb_alloc+0xed/0x360 [dsa_filter]
...

また、次のようなメッセージが記録される場合があります。

Sep 4 16:40:32 server02 kernel: tb_dom_init:150 mod:conntrack init failed, rc=-10001
Sep 4 16:40:32 server02 kernel: dsa_init:93 core init failed, rc=-10001
Sep 4 16:40:32 server02 kernel: dsa: filter load failed, rc=-10001
...

 

この現象は次のようなタイミングで発生します。

  • Deep Security Agentがパケットを処理している際
  • Deep Security ManagerからAgentへポリシーを送信した際

原因

このメッセージはDeep Security Agentのカーネルモジュールが、連続したメモリ領域の割り当てに失敗した際に表示されます。

メモリの割り当てに失敗する要因は主に次の2つが考えられます。

  • システムの空きメモリが不足している
  • システムの空きメモリはあるが、断片化のために連続したメモリ領域が確保できない

現象発生時のDeep Securityの動作

このメッセージが表示されてメモリ割り当てが失敗した場合でも、メモリ確保を再試行します。次のようなイベントが発生していない限り、再試行によりメモリは確保されてパケットの処理や設定のアップデートは正常に行われています。

ファイアウォールイベント

  • 内部エンジンエラー (ID:120)

侵入防御イベント

  • メモリ割り当ての失敗 (ID:201)
  • メモリの割り当てエラー (ID:305)

システムイベント

  • 設定のアップデートの失敗 (ID:721)

なお、メモリを確保するためにシステムのスワップ領域が使用される場合があります。搭載物理メモリに対してスワップ領域の容量が少ない場合、効率的に連続したメモリ領域を確保できないために、スワップ処理によるシステム全体のパフォーマンス劣化が長時間継続することがあります。

対処方法

システムの空きメモリが不足している場合は、メモリを追加してください。

システムに空きメモリがあるにも関わらず現象が発生する場合は、メモリが断片化している可能性があります。 OSを再起動する事でメモリの断片化は解消されます。 また、適用しているルールの数を必要最小限に抑える事によって、Deep Securityが必要とするカーネルメモリの量が削減された結果として、メモリ断片化の進行を緩和できます。それ以外のメモリ断片化の解消や軽減の方法については、OSベンダーにお問い合わせください。

Deep Security Agentのカーネルモジュールは、ネットワーク上のトラフィックが発生する都度カーネルメモリの割り当ておよび解放を繰り返します。

また、単一のパケットを診断するために必要となるカーネルメモリの量は、適用されているルールの数に比例します。

そのため、Deep Security Agentの稼働中には、停止時と比較してカーネルメモリの使用量が増加し、カーネルメモリが断片化しやすくなるのは必然となります。

メモリ断片化の根本原因の追求や断片化を根底から防ぐような対処と言った観点で調査を依頼されても、解決不可能な事実をご認識頂いた上で、OSベンダーにはシステムの再起動を伴わないメモリ断片化の解消・緩和策についてご相談ください。

参考

メモリ断片化の状況は /proc/buddyinfo で確認できます。次の例のように「DMA32」の行の数値が左側の値が大きく、右側の値が小さいほどメモリが断片化しています。

顕著に断片化している例

# cat /proc/buddyinfo
Node 0, zone DMA 2 1 1 1 0 2 1 0 1 1 1
Node 0, zone DMA32 10794 629 22 0 0 0 0 0 0 1 0
Node 0, zone Normal 1273 12 7 4 5 2 2 2 1 0 0

断片化が軽度な例

# cat /proc/buddyinfo
Node 0, zone DMA 1 4 2 2 3 0 0 0 1 1 3
Node 0, zone DMA32 5 6 3 7 9 9 9 10 8 6 691
Node 0, zone Normal 133 472 219 116 44 7 3 1 4 4 37
Premium
Internal
Partner
評価:
カテゴリ:
動作トラブル
Solution Id:
1105158
ご提案/ご意見
このソリューションはお役に立ちましたか?

フィードバックありがとうございました!

いただいたご提案/ご意見に関して、トレンドマイクロから詳細確認のため、Eメールを送付させていただく場合がありますので、Eメールアドレスを入力してください:
入力いただいたEメールアドレスはソリューション改善のためだけに使用いたします.

*こちらに技術的なご質問などをいただきましてもご返答する事ができません.

何卒ご了承いただきますようお願いいたします.


To help us improve the quality of this article, please leave your email here so we can clarify further your feedback, if neccessary:
We will not send you spam or share your email address.

*This form is automated system. General questions, technical, sales, and product-related issues submitted through this form will not be answered.


ユーザーガイド