メモリのリークまたは断片化により、%SYS-2-MALLOCFAIL メッセージが表示される

ドキュメント

2012/05/21 - 22:37
5月 21st, 2012

2008 年 1 月 25 日(初版)

TAC SR Collection
主な問題

このメッセージはプロセスが、必要な容量の連続したメモリ ブロックを確保できなかったことを示しています。次の例は IP Input プロセスが、プロセッサメモリプールから 1028 バイトのメモリブロック確保に失敗しています。

%SYS-2-MALLOCFAIL: Memory allocation of 1028 bytes failed from 0x601617A4,
pool Processor, alignment 0 -Process= "IP Input", ipl= 2, pid= 21

このメッセージが表示される原因は次のとおりです。

  • ルータのメモリが足りないため、Cisco IOS® ソフトウェアまたはルーティング テーブルのサイズを十分にサポートできない。
  • メモリ リークが発生した。
  • メモリが断片化した。

注: Blaster ワームや Nachi ワームがメモリの問題を引き起こすこともあります。

原因

解決策

%SYS-2-MALLOCFAIL メッセージが報告された場合は、次の手順を実施します。

  1. 次の例に示すように、show version コマンドを実行して、Cisco IOS ソフトウェアをサポートするのに十分な容量の DRAM がルータに搭載されていることを確認します。Router#show version
    Cisco Internetwork Operating System Software
    IOS (tm) C2600 Software (C2600-I-M), Version 12.2(8)T5, RELEASE SOFTWARE (fc1)
    TAC Support:
    Copyright (c) 1986-2002 by Cisco Systems, Inc.
    Compiled Fri 21-Jun-02 08:50 by ccai
    Image text-base: 0x80008074, data-base: 0x80A2BD40
    ROM: System Bootstrap, Version 12.2(7r) [cmong 7r], RELEASE SOFTWARE (fc1)morannon uptime is 5 days, 1 hour, 27 minutes
    System returned to ROM by power-on
    System image file is "flash:c2600-i-mz.122-8.T5.bin"
    Cisco 2620XM (MPC860P) processor (revision 0x100) with 28672K/4096K bytes of memory.
    Processor board ID JAD071008B1 (1020186390)
    太字の部分は、I 機能セット(C2600-I-M)を含む Cisco IOS ソフトウェア リリース 12.2(8)T5 がルータで実行されていることを示しています。また、このルータには 32MB の DRAM(28672K/4096K)が搭載されています。
  2. プラットフォーム、トレイン、機能セットなど、Cisco IOS ソフトウェアの最小メモリ要件を確認します。Cisco IOS ソフトウェアの最小メモリ要件を確認するには、show version コマンドの出力を アウトプットインタープリタに貼り付けて分析を実行します。分析結果の Cisco IOS Image Software Advisor-IOS Image Name セクションにあるリンクを参照してください。
  3. 推奨容量の DRAM がルータに搭載されていることを確認します。大きなルーティング テーブルを使用する場合は、最小要件以上の DRAM が必要になります。Border Gateway Protocol(BGP)を使用する場合の DRAM メモリ要件については、「最適ルーティングの実現と BGP メモリ消費の削減」を参照してください。Cisco 2600、3600、3700 シリーズ ルータでは、一部のインターフェイス プロセッサをサポートするために最小限必要な容量の I/O メモリが必要になります。搭載されているメモリの容量が推奨容量より少ない場合は、次のいずれかを行ってください。
    • メモリを追加する。
    • 現在のメモリ容量でサポート可能なバージョンの Cisco IOS ソフトウェアに切り替える。
  4. CiscoWorks の User Tracking(UT)Discovery 機能など、一部のアプリケーションでは、ip cef コマンドを実行しないとメモリ不足の状態につながる機能が使用されます。
  5. メモリ割り当ての失敗は、メモリ リーク バグやメモリの断片化によって引き起こされる場合があります。この場合は、アウトプットインタープリタに show memory コマンドの出力を貼り付けて分析を実行します。
  6. 断片化が起きているかどうかを確認するには、show memory [summary] コマンドを実行して、Largest フィールドと Free フィールドを比較します。断片化が起きている場合は、Largest フィールドの数値が Free フィールドの数値より大幅に小さくなります。Largest フィールドには連続する最大の空きメモリ ブロックが表示され、通常は次の例に示すように、空きメモリ容量に近い値になります。 Router#show memory summary
    Head   Total(b) Used(b) Free(b)  Lowest(b) Largest(b)
    Processor C0E48  13885880 1615712 12270168 12077808  12077808
    I/O       E00000 2097152  398396  1698756  1698756   1698588各フィールドの意味は次のとおりです。   
    • Total は、プロセッサまたは I/O メモリに割り当てられた合計メモリです。これには、Cisco IOS ソフトウェアによって使用されるメモリ容量は含まれません。
    • Used は、show memory [summary] コマンドが実行された時点で使用されていたメモリ容量です。
    • Free は、show memory [summary] コマンドが実行された時点の空きメモリ容量です。
    • Lowest は、最後のリロード後から空きメモリ容量が最も少なくなったときの値です。
    • Largest は、show memory [summary] コマンドが実行された時点における、連続する最大の空きメモリ容量です。通常、この値は空きメモリ容量に近くなります。この数値が空きメモリ容量より大幅に小さい場合は、断片化が起きていることを示しています。
  7. メモリ リークが起きているかどうかを確認するには、show memory [summary] コマンドの出力を一定の間隔で数回保存します。この間隔は、メモリ割り当ての失敗が発生するまでの時間によって異なります。4 日過ぎてからルータにエラーが表示され始める場合、毎日 1 〜 2 回程度このコマンドを実行して出力を保存すれば十分にパターンを特定できます。空きメモリが着実に減り続けている場合は、メモリ リークが起きている可能性があります。メモリ リークは、プロセスによってメモリ領域が使用された後、その領域がシステムに解放されないことによって引き起こされます。問題を引き起こしているプロセスを特定するには、show processes memory コマンドを実行して、次の手順を実行します。
    1. メモリを解放していないプロセスを特定するために、show processes memory コマンドの出力を一定の間隔で数回保存します。
    2. この出力には Freed カウンタと Holding カウンタが含まれます。Holding カウンタの値が増えていて Freed カウンタの値が増えていないプロセスがある場合は、そのプロセスがメモリ リークを引き起こしている可能性があります。
    3. 問題を引き起こしているプロセスを特定したら、Bug Toolkit を参照してメモリ リークの問題を検索します。この問題は、ルータに現在インストールされている Cisco IOS ソフトウェアに影響するプロセスに関係しています。
注: Blaster ワームや Nachi ワームがメモリの問題を引き起こすこともあります。これらのワームが関係しているかどうかを調べるには、次の文書を参照してください。これらのワームが関係しているかどうかを調べるには、次の文書を参照してください。

メモリの問題を解決する方法については、『トラブルシューティング:メモリの問題』を参照してください。

備考

クラッシュのタイプ 断続的

エラー メッセージおよび警告

  • %SYS-2-CFORKMEM
  • %SYS-2-MALLOCFAIL

英語版URL

https://supportforums.cisco.com/docs/DOC-4315

Loading.

アクション

このドキュメントについて