内容

概要

前提条件

要件

使用するコンポーネント

背景説明

SNMP によってポーリングされた出力

既知の注意事項

SNMP の CPU Hog

緩和策

関連情報

概要

このドキュメントでは、空きメモリや使用メモリなどの Cisco 適応型セキュリティ アプライアンス（ASA）メモリ統計情報を照会するために、簡易ネットワーク管理プロトコル（SNMP）を使用する方法について説明します。

前提条件

要件

このドキュメントに特有の要件はありません。

使用するコンポーネント

このドキュメントの情報は、Cisco Adaptive Security Appliance（ASA）デバイスで有効です。

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期（デフォルト）設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。

背景説明

空きメモリおよび使用メモリ統計情報をモニタして、ネットワーク デバイスのメモリ パフォーマンスを識別することができます。Cisco ASA では、SNMP によってポーリングされたメモリ統計情報をサポートし、これらのサポートされる OID を使用します。

- 32 ビットのメモリ カウンタ

「CiscoMemoryPoolEntry」オブジェクトを使用します。オブジェクトと ID のマッピングがこの出力例に表示されています。

ciscoMemoryPoolType 1.3.6.1.4.1.9.9.48.1.1.1.1

ciscoMemoryPoolName 1.3.6.1.4.1.9.9.48.1.1.1.2

ciscoMemoryPoolAlternate 1.3.6.1.4.1.9.9.48.1.1.1.3

ciscoMemoryPoolValid 1.3.6.1.4.1.9.9.48.1.1.1.4

ciscoMemoryPoolUsed 1.3.6.1.4.1.9.9.48.1.1.1.5

ciscoMemoryPoolFree 1.3.6.1.4.1.9.9.48.1.1.1.6

ciscoMemoryPoolLargestFree 1.3.6.1.4.1.9.9.48.1.1.1.7

- 64 ビットのメモリ カウンタ

「cempMemPoolEntry」オブジェクトを使用します。オブジェクトと ID のマッピングがこの出力例に表示されています。

cempMemPoolIndex 1.3.6.1.4.1.9.9.221.1.1.1.1.1

cempMemPoolLowestFree 1.3.6.1.4.1.9.9.221.1.1.1.1.10

cempMemPoolUsedLowWaterMark 1.3.6.1.4.1.9.9.221.1.1.1.1.11

cempMemPoolAllocHit 1.3.6.1.4.1.9.9.221.1.1.1.1.12

cempMemPoolAllocMiss 1.3.6.1.4.1.9.9.221.1.1.1.1.13

cempMemPoolFreeHit 1.3.6.1.4.1.9.9.221.1.1.1.1.14

cempMemPoolFreeMiss 1.3.6.1.4.1.9.9.221.1.1.1.1.15

cempMemPoolType 1.3.6.1.4.1.9.9.221.1.1.1.1.2

cempMemPoolName 1.3.6.1.4.1.9.9.221.1.1.1.1.3

cempMemPoolPlatformMemory 1.3.6.1.4.1.9.9.221.1.1.1.1.4

cempMemPoolAlternate 1.3.6.1.4.1.9.9.221.1.1.1.1.5

cempMemPoolValid 1.3.6.1.4.1.9.9.221.1.1.1.1.6

cempMemPoolUsed 1.3.6.1.4.1.9.9.221.1.1.1.1.7

cempMemPoolFree 1.3.6.1.4.1.9.9.221.1.1.1.1.8

cempMemPoolLargestFree 1.3.6.1.4.1.9.9.221.1.1.1.1.9

SNMP によってポーリングされた出力

メモリ統計情報が SNMP クライアントのコンソールで照会されると、出力は次の出力例のように表示されます。

32 ビット カウンタの場合：

iso.3.6.1.4.1.9.9.48.1.1.1.2.1 = STRING: "System memory"

iso.3.6.1.4.1.9.9.48.1.1.1.2.6 = STRING: "MEMPOOL_DMA"

iso.3.6.1.4.1.9.9.48.1.1.1.2.7 = STRING: "MEMPOOL_GLOBAL_SHARED"

iso.3.6.1.4.1.9.9.48.1.1.1.3.1 = INTEGER: 0

iso.3.6.1.4.1.9.9.48.1.1.1.3.6 = INTEGER: 0

iso.3.6.1.4.1.9.9.48.1.1.1.3.7 = INTEGER: 0

iso.3.6.1.4.1.9.9.48.1.1.1.4.1 = INTEGER: 1

iso.3.6.1.4.1.9.9.48.1.1.1.4.6 = INTEGER: 1

iso.3.6.1.4.1.9.9.48.1.1.1.4.7 = INTEGER: 1

iso.3.6.1.4.1.9.9.48.1.1.1.5.1 = Gauge32: 230971224

iso.3.6.1.4.1.9.9.48.1.1.1.5.6 = Gauge32: 21585704

iso.3.6.1.4.1.9.9.48.1.1.1.5.7 = Gauge32: 50616136

iso.3.6.1.4.1.9.9.48.1.1.1.6.1 = Gauge32: 37464232

iso.3.6.1.4.1.9.9.48.1.1.1.6.6 = Gauge32: 32964824

iso.3.6.1.4.1.9.9.48.1.1.1.6.7 = Gauge32: 37464248

iso.3.6.1.4.1.9.9.48.1.1.1.7.1 = Gauge32: 37460160

iso.3.6.1.4.1.9.9.48.1.1.1.7.6 = Gauge32: 32945592

iso.3.6.1.4.1.9.9.48.1.1.1.7.7 = Gauge32: 37460160

show mem コマンドまたは show mem detail コマンドの出力を使用して同一の解釈が可能です。

‘iso.3.6.1.4.1.9.9.48.1.1.1.5.1 = Gauge32:’ correlates to the ‘Used Memory’ in 'sh mem' output.

‘iso.3.6.1.4.1.9.9.48.1.1.1.6.1 = Gauge32:’ correlates to the ‘Free Memory’ in ‘sh mem' output

64 ビット カウンタの場合：

iso.3.6.1.4.1.9.9.221.1.1.1.1.2.1.1 = INTEGER: 2

iso.3.6.1.4.1.9.9.221.1.1.1.1.3.1.1 = STRING: "System memory"

iso.3.6.1.4.1.9.9.221.1.1.1.1.5.1.1 = INTEGER: 0

iso.3.6.1.4.1.9.9.221.1.1.1.1.6.1.1 = INTEGER: 1

iso.3.6.1.4.1.9.9.221.1.1.1.1.7.1.1 = Gauge32: 230971320

iso.3.6.1.4.1.9.9.221.1.1.1.1.8.1.1 = Gauge32: 37464144

iso.3.6.1.4.1.9.9.221.1.1.1.1.17.1.1 = Gauge32: 0

iso.3.6.1.4.1.9.9.221.1.1.1.1.18.1.1 = Counter64: 230971312

iso.3.6.1.4.1.9.9.221.1.1.1.1.19.1.1 = Gauge32: 0

iso.3.6.1.4.1.9.9.221.1.1.1.1.20.1.1 = Counter64: 37464144

show mem コマンドまたは show mem detail コマンドの出力を使用して同一の解釈が可能です。

ASA1#

ASA1#

ASA1#

ASA1# show mem

Free memory:          37498488 bytes (14%)

Used memory:         230936968 bytes (86%)

-------------     ------------------

Total memory:        268435456 bytes (100%)

ASA1#

ASA1#

ASA1#

ASA1# show mem detail

Free memory:                        37498488 bytes (14%)

Used memory:

Allocated memory in use:       50581896 bytes (19%)

Reserved memory:              180355072 bytes (67%)

-----------------------------   ------------------

Total memory:                      268435456 bytes (100%)

Least free memory:         37463768 bytes (14%)

Most used memory:         230971688 bytes (86%)

!--- Some output excluded.

既知の注意事項

このセクションでは、SNMP を使用したメモリ統計情報のポーリングに関する既知の注意事項について説明します。

メモリ情報をポーリングするために ASA がクエリーされる場合、SNMP は次に示す ASA メモリの 3 種類の主要なセグメントから情報を取得できます。

1. システム メモリ プール

2. MEMPOOL_DMA のプール

3. MEMPOOL_GLOBAL_SHARED のプール

MEMPOOL_GLOBAL_SHARED のプール情報が SNMP 経由でクエリーされると、CPU Hog が発生します。メモリ統計情報のポーリングに SNMP を使用する場合、ASA がこの情報を莫大な量のメモリを使用してクエリーする必要があり、その結果 SNMP 関連の CPU Hog を引き起こすことにつながると、トラフィックが集中またはオーバーロードする時にパケットのドロップまたはオーバーランが発生する可能性があることは明らかです。ASA の CPU が他のプロセスにリリースされる前に SNMP プロセスによって長時間保持されている可能性があります。データ レートが ASA 経由で十分高い場合、オーバーランがインターフェイス カウンタで増加し、パケットがドロップされる可能性があります。

これは、シングルコア プラットフォームとマルチコア プラットフォームの両方に該当します。show mem detail に関連するこれらの統計情報をポーリングするメモリ プール MIB ではなく、show mem 出力に関連するこれらの MIB のみを使用することを推奨します。これらの CPU Hog を表示するには、CLI から show mem detail を実行できます。

SNMP の CPU Hog

このセクションでは、Cisco ASA からのサンプル CPU Hog メッセージが表示されます。

Process:      snmp, PROC_PC_TOTAL: 124, MAXHOG: 306, LASTHOG: 299

LASTHOG At:   12:00:24 EDT May 17 2013

PC:           0x000000000124fd5c (suspend)

Process:      snmp, NUMHOG: 124, MAXHOG: 306, LASTHOG: 299

LASTHOG At:   12:00:24 EDT May 17 2013

PC:           0x000000000124fd5c (suspend)

Call stack:   0x000000000124fd5c  0x000000000124e72b  0x000000000124b5da

0x000000000124e3e7  0x0000000001228b9a  0x000000000122732a

0x0000000000423cc5

Process:      snmp, PROC_PC_TOTAL: 248, MAXHOG: 306, LASTHOG: 298

LASTHOG At:   12:01:34 EDT May 17 2013

PC:           0x00000000013780cf (suspend)

Process:      snmp, NUMHOG: 248, MAXHOG: 306, LASTHOG: 298

LASTHOG At:   12:01:34 EDT May 17 2013

PC:           0x00000000013780cf (suspend)

Call stack:   0x000000000124803b  0x00000000012289e5  0x000000000122732a

0x0000000000423cc5

Cisco ASA でもこのエラー メッセージが表示される場合があります。

[local5.warning] %ASA-4-711004: Task ran for 305 msec, Process = snmp, PC = 1250117, Call stack =

2013-05-17T09:33:12-04:00 CISCO-ASA-TEST(10.10.10.1) [local5.warning] %ASA-4-711004: Task ran for 305 msec, Process = snmp, PC = 1250117, Call stack =   0x0000000001250117  0x000000000124ea07  0x000000000124b5da  0x000000000124e3e7  0x0000000001228b9a  0x000000000122732a  0x0000000000423cc5

2013-05-17T09:33:12-04:00 CISCO-ASA-TEST(10.10.10.2) [local5.warning] %ASA-4-711004: Task ran for 354 msec, Process = snmp, PC = 1250117, Call stack =

2013-05-17T09:33:12-04:00 CISCO-ASA-TEST(10.10.10.2) [local5.warning] %ASA-4-711004: Task ran for 354 msec, Process = snmp, PC = 1250117, Call stack =   0x0000000001250117  0x000000000124ea07  0x000000000124b5da  0x000000000124e3e7  0x0000000001228b9a  0x000000000122732a  0x0000000000423cc5

2013-05-17T09:33:22-04:00 CISCO-ASA-TEST(10.10.10.2) [local5.warning] %ASA-4-711004: Task ran for 348 msec, Process = snmp, PC = 124fd5c, Call stack =

2013-05-17T09:33:22-04:00 CISCO-ASA-TEST(10.10.10.2) [local5.warning] %ASA-4-711004: Task ran for 348 msec, Process = snmp, PC = 124fd5c, Call stack =   0x000000000124fd5c  0x000000000124e72b  0x000000000124b5da  0x000000000124e3e7  0x0000000001228b9a  0x000000000122732a  0x0000000000423cc5

2013-05-17T09:36:17-04:00 CISCO-ASA-TEST(10.10.10.1) [local5.warning] %ASA-4-711004: Task ran for 300 msec, Process = snmp, PC = 13780cf, Call stack =

2013-05-17T09:36:17-04:00 CISCO-ASA-TEST(10.10.10.1) [local5.warning] %ASA-4-711004: Task ran for 300 msec, Process = snmp, PC = 13780cf, Call stack =   0x000000000124803b  0x00000000012289e5  0x000000000122732a  0x0000000000423cc5

緩和策

1. global_shared_mem_pool に関連する OID をポーリングすることは避けてください。

2. ASA プラットフォームに対して snmpwalk を実行し、global_shared_mem_pool に関連する OID のいずれかがポーリングされているかどうかを確認します。

snmpwalk -c public -v2c -Os <IP Address> 1.3.6.1.4.1.9.9.48

enterprises.9.9.48.1.1.1.2.1 = STRING: "System memory"

enterprises.9.9.48.1.1.1.2.6 = STRING: "MEMPOOL_DMA"

enterprises.9.9.48.1.1.1.2.7 = STRING: "MEMPOOL_GLOBAL_SHARED"

enterprises.9.9.48.1.1.1.3.1 = INTEGER: 0

enterprises.9.9.48.1.1.1.3.6 = INTEGER: 0

enterprises.9.9.48.1.1.1.3.7 = INTEGER: 0

enterprises.9.9.48.1.1.1.4.1 = INTEGER: 1

enterprises.9.9.48.1.1.1.4.6 = INTEGER: 1

enterprises.9.9.48.1.1.1.4.7 = INTEGER: 1

enterprises.9.9.48.1.1.1.5.1 = Gauge32: 804874736

enterprises.9.9.48.1.1.1.5.6 = Gauge32: 125674744

enterprises.9.9.48.1.1.1.5.7 = Gauge32: 153938632

enterprises.9.9.48.1.1.1.6.1 = Gauge32: 3490092567

enterprises.9.9.48.1.1.1.6.6 = Gauge32: 146135816

enterprises.9.9.48.1.1.1.6.7 = Gauge32: 3084064048

enterprises.9.9.48.1.1.1.7.1 = Gauge32: 3083999920

enterprises.9.9.48.1.1.1.7.6 = Gauge32: 146133824

enterprises.9.9.48.1.1.1.7.7 = Gauge32: 3083999920

largest_contiguous_memory の OID なので enterprise.9.9.48.1.1.1.7 の使用は避けてください。また、enterprises.9.9.48.1.1.1.X.7 は MEMPOOL_GLOBAL_SHARED に関係しているため使用は避けてください。

ファミリ 9.9.48.1 .1.1.x.y からの OID をポーリングする場合は、「y」が global_mempool に一致しているかどうかを確認します。一致している場合は、これらの OID を SNMP CPU Hog を軽減するために使用しないでください。この「y」はダイナミックに生成され、それぞれの Cisco ASA プラットフォームで異なる場合があります。

詳細については CSCtx43501 を参照してください。

関連情報

- テクニカル サポートとドキュメント – Cisco Systems