内容

はじめに

背景説明

一般情報

MEMPOOL_HEAPCACHE_Xです。

Heapcacheメモリーアラートについて

MEMPOOL_GLOBAL_共有

アラートコンテキスト

MEMPOOL_DMAおよびMEMPOOL_DMA_ALT1

DMAメモリプールの概要

DMAメモリの使用

DMAメモリプールの動作

どのようなときに注意すべきか？

SNMPモニタリング

はじめに

このドキュメントでは、適応型セキュリティアプライアンス(ASA)/Firepower Threat Defense(FTD)のさまざまなメモリコンポーネントの理解について説明します。

背景説明

メモリ関連の通知を受け取った場合、この記事では、予防措置を講じる時期と予防措置を無視する時期を決定します。 通常、Simple Network Management Protocol(SNMP)ポーリングは、メモリ関連のアラームを開始するために使用されます。このSNMPは、show memory detailコマンドの結果を使用して、データを収集し、アラートをトリガーします。

一般情報

この記事では、下記のメモリ要素について説明します

- MEMPOOL_HEAPCACHE_Xです。

- MEMPOOL_GLOBAL_共有

- MEMPOOL_DMAおよびMEMPOOL_DMA_ALT1

MEMPOOL_HEAPCACHE_Xです。

Heapcacheメモリーアラートについて

1. Heapcache割り当て動作

- Heapcacheはメモリ割り当ての優先プールです。

- Heapcacheプールが枯渇すると、グローバル共有プールからさらに割り当てが行われます。

- グローバル共有プール自体が、必要に応じてシステムメモリからメモリをプルします。

2. Heapcacheメモリアラート

- Heapcacheメモリアラートを受け取るのは通常の状態であり、問題を示しているわけではありません。

- Heapcacheメモリは、使用率に割り当てられた最初のプールであるため、高い使用率が予想されます。

3. 監視のキーポイント

- システムメモリの使用に重点を置きます。

- システムメモリが十分な場合は、MEMPOOL_HEAPCACHE_0プールまたはMEMPOOL_GLOBAL_SHAREDプールのアラートを気にする必要はありません。

- SNMPツールを使用してシステムメモリを監視し、重大なしきい値やパフォーマンスの低下がないかどうかを確認します。

4. アラートと予想される動作

- メモリ予約の動作は正常です。

- 必要に応じて、メモリが動的に予約され、割り当てられます。

- システムメモリ自体が著しく高くなる場合を除き、Heapcacheまたはグローバル共有プールに関連するアラートを安全に無視できます。

MEMPOOL_GLOBAL_共有

- 動的なメモリ処理

MEMPOOL_GLOBAL_SHAREDは、ブート時にすべてのメモリを事前に割り当てることはありません。代わりに、必要に応じてオペレーティングシステムからオンデマンドでメモリを要求します。

- メモリリリース

大量のメモリーが解放されると、MEMPOOL_GLOBAL_SHAREDはメモリーをオペレーティング・システムに戻します。

- 柔軟な成長/収縮

MEMPOOL_GLOBAL_SHAREDのサイズは、ワークロードに基づいて動的に拡張および縮小されます。この適応型の動作により、効率的なメモリの使用が保証されます。

- 速度に応じた最小キャッシュ

MEMPOOL_GLOBAL_SHARED内で割り当てられるメモリの量が少ないため、将来のメモリ割り当て要求を高速化し、遅延を回避できます。

アラートコンテキスト

このアラートが表示された場合、MEMPOOL_GLOBAL_SHAREDの予期される動作が示されます。メモリの増加、縮小、および動的な管理が行われるため、この動作は正常であり、問題を示すものではありません。特定のメモリ関連のパフォーマンスの問題が確認されない限り、このアラートを無視しても安全です。

MEMPOOL_DMAおよびMEMPOOL_DMA_ALT1

DMAメモリプールの概要

Cisco ASA/FTDのダイレクトメモリアクセス(DMA)メモリシステムは、次の2つの主要なメモリプールで構成されています。

1. MEMPOOL_DMA

2. MEMPOOL_DMA_ALT1

これらの2つのプールは、円滑なメモリの可用性を確保するために連携して動作します。

- MEMPOOL_DMAはプライマリプールです。

- MEMPOOL_DMA_ALT1は、プライマリプールが使い果たされた場合のバックアップとして機能します。

DMAメモリの使用

DMAメモリプールは、主に高速データアクセスとメモリ集約型の操作が必要なタスクに使用されます。これは、通常、VPN関連の機能や、次のような他のプロセスに使用されます。

1. 仮想プライベートネットワーク(VPN)サービス：

- IPSec(IKEv1/IKEv2)

- Transport Layer Security(TLS)プロキシ

- WebVPN（AnyConnect/クライアントレスVPN）

2. セキュリティおよびログサービス：

- 侵入防御システム（IPS）

- Syslogging(「logging host ...」)

- セキュアシェル(SSH)接続

3. 管理およびその他のサービス：

- Adaptive Security Device Manager(ASDM)（ASA HTTPSサーバ）

- DHCP（Dynamic Host Configuration Protocol）サーバ

DMAメモリプールの動作

1. ブート時間の割り当て：

ブートアップ時に、ASAは有効な機能に基づいてDMAメモリを割り当てます。

2. 動的なメモリ使用：

- 必要に応じて、MEMPOOL_DMAからの要求メモリを処理します。

- プロセスが完了すると、メモリは空きプールに戻ります（わずかな遅延があります）。

3. MEMPOOL_DMA_ALT1にフォールバックします。

- MEMPOOL_DMAが完全に使用されるようになった場合、システムは自動的にMEMPOOL_DMA_ALT1を使用して起動します。

- これにより、メモリ関連の中断を伴わない継続的な動作が保証されます。

どのようなときに注意すべきか？

- MEMPOOL_DMAの使用率が高い（100 %に近い）場合、MEMPOOL_DMA_ALT1に十分なメモリがあれば、すぐに問題は発生しません。

- MEMPOOL_DMA_ALT1も満たされ始めると、メモリ枯渇の問題があることを示しており、さらに調査が必要です。

- アクションが必要:

- MEMPOOL_DMA_ALT1の使用状況を監視します。

- 両方のプールが完全な使用率に近づいている場合は、機能の使用状況、ロギングアクティビティ、および大量のメモリを必要とするプロセスを調査します。

dmaメモリの高使用率関連の問題が発生する場合は、次の項目を確認してください。

HTTPサーバ：HTTPが設定されている場合、4、80、1550、2048、および2560バイトのブロックが割り当てられ、結果として約7MbのDMAが使用されます。ASDMへのアクセスを当分の間、無効にしてみてください。

URLサーバ：設定されている場合、81 KBのDMAメモリが追加されます。

インターネットキーエクスチェンジ(IKE)およびWebVPN：任意の形式のVPNを有効にすると、DMAメモリプールからメモリが取り出されます。

VPNを使用している場合は、このメモリも利用できます。 VPNの使用率をチェックし、ボックスのキャパシティを超えていないことを確認します。

ロギング：ロギングに使用されるDMAは、キューのサイズとロギングホストの数によって制御されます。

#shログの実行

ロギングキュー0を使用しない

ロギングキュー8192を使用しない

複数のロギングサーバを設定しないでください

ジャンボフレームを設定しない

SNMPモニタリング

示されているManagement Information Base（MIB；管理情報ベース）は、SNMPメモリの監視に使用されます。

次のMIBのCounter64値とその使用方法について理解しています。

MIBのカウンタ64の値

1. MIB .1.3.6.1 .4.1.9.9.221.1.1.1.18:：このMIBはcempMemPoolHCUsedオブジェクトを表します。これは、使用されているメモリプールの大容量カウンタです。プールで使用されているメモリの量をバイト単位で示します。

2. MIB .1.3.6.1 .4.1.9.9.221.1.1.1.20: – このMIBはcempMemPoolHCFreeオブジェクトを表します。これは、空きメモリプールに対する大容量カウンタです。プール内の空きメモリの量をバイト単位で示します。

特定MIBの目的：

1. MEMPOOL_MSGLYR_HB:：メッセージ層ハートビートのメモリプールを表します。これは、システム内のハートビートメッセージ用に割り当てられたメモリを監視するために使用されます。

2. MEMPOOL_MSGLYR: – メッセージ層のメモリプールを表します。これは、システム内の一般的なメッセージ層の動作に割り当てられたメモリを監視するために使用されます。

3. MEMPOOL_HEAPCACHE_1: – ヒープキャッシュ1のメモリプールを表します。これは、システムの最初のヒープキャッシュに割り当てられたメモリを監視するために使用されます。

4. MEMPOOL_HEAPCACHE_0: – ヒープキャッシュ0のメモリプールを表します。これは、システムのプライマリヒープキャッシュに割り当てられたメモリを監視するために使用されます。

5. MEMPOOL_DMA_ALT1: - DMA代替1のメモリプールを表します。これは、システム内の最初の代替DMA操作に割り当てられたメモリを監視するために使用されます。

6. MEMPOOL_DMA: - DMAのメモリプールを表します。これは、システムのDMA操作に割り当てられたメモリを監視するために使用されます。

7. MEMPOOL_GLOBAL_SHARED: – グローバル共有メモリのメモリプールを表します。これは、システム内でグローバルに共有される操作に割り当てられたメモリを監視するために使用されます。