キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

ASA: Blockの各SIZEの利用用途と 使用状況の確認

 

 

Blockの利用用途について

ASAは起動時に、ある特定処理用に、メモリ領域の一部をBlockとして割当てます。 これらBlockは 様々な用途で利用されます。各SIZEの主な利用用途は以下です。以下は一例である事に注意してください。

SIZE主な利用用途
 80  TCP intercept、Failover hello messages
 256   Stateful failover messages、Syslog messages、ARP
 1550   パケット処理全般
 2048   パケット処理全般 ( ASA 5505と SSMモジュール用)
 2560   IKEメッセージ
 4096   QoS
 8192   QoS
 9344

  パケット処理全般 (ジャンボフレーム利用時)


ある特定SIZEのBlockが枯渇すると、そのSIZEを利用する機能に大きな影響が発生します。例えば1550 SIZEのBlockが枯渇した場合、パケット処理全般に悪影響が発生します。

主なBlockの枯渇原因としては、膨大なトランザクション(DoS攻撃を含む)による高負荷、もしくは Blockリークのソフトウェア不具合の影響、もしくは その両方の可能性があります。



SHOWコマンドでのBlock使用状況の確認

コマンド"show blocks"で確認可能です。MAXが最大値、LOWが最も枯渇した時の値、CNTが現在の値です。

LOWが 0の場合、過去 そのSIZEのBlockが完全に枯渇した事を示します。 CNTが低い、もしくは 0 の場合は、そのSIZEのBlockが現在枯渇中である事を示します。

ciscoasa/pri/act(config)# show blocks
  SIZE    MAX    LOW    CNT
     0   1450   1440   1450
     4    900    899    899
    80   5000   4916   4973
   256   5888   5838   5877
  1550  21174  20959  21149
  2048   4100   4100   4100
  2560   7320   7320   7320
  4096    100    100    100
  8192    100    100    100
  9344    100    100    100
 16384    200    200    200
 65536     16     16     16


また、Blockが枯渇した時は、以下のようなシスログメッセージの生成を期待できます。ロギングバッファにシスログメッセージを保管するよう設定している場合は、コマンド"show log"で確認可能です。

%ASA-3-321007: System is low on free memory blocks of size 1550 (0 CNT out of 11387 MAX)


 

Block使用状況の監視のためのOID

以下はsnmpwalkで確認できる、関連OID一覧です。各SIZEの current numberのOIDを定期取得・ 監視する事で、システムのBlock使用状況の監視が可能です。

cisco@ubuntu:~$ snmpwalk -On -v 2c 10.xx.xx.xx -c cisco .1.3.6.1.4.1.9.9.147.1.2.2.1
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.0.3 = STRING: "maximum number of allocated 0 byte blocks"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.0.5 = STRING: "fewest 0 byte blocks available since system startup"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.0.8 = STRING: "current number of available 0 byte blocks"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.4.3 = STRING: "maximum number of allocated 4 byte blocks"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.4.5 = STRING: "fewest 4 byte blocks available since system startup"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.4.8 = STRING: "current number of available 4 byte blocks"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.80.3 = STRING: "maximum number of allocated 80 byte blocks"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.80.5 = STRING: "fewest 80 byte blocks available since system startup"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.80.8 = STRING: "current number of available 80 byte blocks"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.256.3 = STRING: "maximum number of allocated 256 byte blocks"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.256.5 = STRING: "fewest 256 byte blocks available since system startup"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.256.8 = STRING: "current number of available 256 byte blocks"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.1550.3 = STRING: "maximum number of allocated 1550 byte blocks"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.1550.5 = STRING: "fewest 1550 byte blocks available since system startup"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.1550.8 = STRING: "current number of available 1550 byte blocks"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.2048.3 = STRING: "maximum number of allocated 2048 byte blocks"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.2048.5 = STRING: "fewest 2048 byte blocks available since system startup"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.2048.8 = STRING: "current number of available 2048 byte blocks"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.2560.3 = STRING: "maximum number of allocated 2560 byte blocks"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.2560.5 = STRING: "fewest 2560 byte blocks available since system startup"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.2560.8 = STRING: "current number of available 2560 byte blocks"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.4096.3 = STRING: "maximum number of allocated 4096 byte blocks"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.4096.5 = STRING: "fewest 4096 byte blocks available since system startup"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.4096.8 = STRING: "current number of available 4096 byte blocks"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.8192.3 = STRING: "maximum number of allocated 8192 byte blocks"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.8192.5 = STRING: "fewest 8192 byte blocks available since system startup"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.8192.8 = STRING: "current number of available 8192 byte blocks"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.9344.3 = STRING: "maximum number of allocated 9344 byte blocks"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.9344.5 = STRING: "fewest 9344 byte blocks available since system startup"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.9344.8 = STRING: "current number of available 9344 byte blocks"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.16384.3 = STRING: "maximum number of allocated 16384 byte blocks"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.16384.5 = STRING: "fewest 16384 byte blocks available since system startup"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.16384.8 = STRING: "current number of available 16384 byte blocks"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.65536.3 = STRING: "maximum number of allocated 65536 byte blocks"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.65536.5 = STRING: "fewest 65536 byte blocks available since system startup"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.3.65536.8 = STRING: "current number of available 65536 byte blocks"
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.0.3 = Gauge32: 1450
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.0.5 = Gauge32: 1440
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.0.8 = Gauge32: 1450
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.4.3 = Gauge32: 900
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.4.5 = Gauge32: 899
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.4.8 = Gauge32: 899
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.80.3 = Gauge32: 5000
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.80.5 = Gauge32: 4916
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.80.8 = Gauge32: 4992
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.256.3 = Gauge32: 5888
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.256.5 = Gauge32: 5838
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.256.8 = Gauge32: 5842
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.1550.3 = Gauge32: 21174  
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.1550.5 = Gauge32: 20959
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.1550.8 = Gauge32: 21171
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.2048.3 = Gauge32: 4100
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.2048.5 = Gauge32: 4100
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.2048.8 = Gauge32: 4100
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.2560.3 = Gauge32: 7320
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.2560.5 = Gauge32: 7320
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.2560.8 = Gauge32: 7320
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.4096.3 = Gauge32: 100
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.4096.5 = Gauge32: 100
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.4096.8 = Gauge32: 100
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.8192.3 = Gauge32: 100
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.8192.5 = Gauge32: 100
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.8192.8 = Gauge32: 100
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.9344.3 = Gauge32: 100
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.9344.5 = Gauge32: 100
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.9344.8 = Gauge32: 100
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.16384.3 = Gauge32: 200
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.16384.5 = Gauge32: 200
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.16384.8 = Gauge32: 200
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.65536.3 = Gauge32: 16
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.65536.5 = Gauge32: 16
.1.3.6.1.4.1.9.9.147.1.2.2.1.1.4.65536.8 = Gauge32: 16


 

Block枯渇問題の発生時、取得ログ (TAC解析用)

Blockはシステムが常に利用している為、Blockの ある程度の利用(減少)は、正常な動作の範囲内です。

例えば、Block 1550は、通信処理量が多いと、その分 CNT(現在)値が低下します。 Block枯渇時は、何らかの負荷試験をしてないか、もしくは 異常な量の通信が流れていないか 確認してください。


しかし、特定Blockの CNT(現在)値が 0 もしくは 大きく枯渇し、特定機能の動作が継続して不安定時は、その 問題の発生中に 以下ログの取得を検討してください。 

以下ログを、任意間隔で 複数回(3回以上) 取得いただきますと、時間毎の比較分析ができ、TACの解析精度の向上につながります。


また、Block枯渇問題時は、ASAを再起動することで Blockの解放と、機能障害が発生時のその復旧が可能です。 

 show clock

 show blocks
 show blocks queue history detail
 show blocks exhaustion snapshot
 show asp drop
 show tech
 show log

    --- 以下コマンドは出力量が多いが、各 3000行以上 取得を ---

 show blocks old
 show blocks old dump | begin size <枯渇SIZE>    *1

 

*1: 1550 SIZEが枯渇時は、"show blocks old dump | begin size 1550" コマンドを実行

 

 

参考情報

ASA 8.3 以降: パフォーマンスの問題のモニタとトラブルシューティング
http://www.cisco.com/cisco/web/support/JP/110/1109/1109549_asaperformance.html#showblocks

バージョン履歴
改訂番号
2/2
最終更新:
‎08-30-2017 04:24 AM
更新者:
 
ラベル(1)
寄稿者:
タグ(1)