目录

简介

先决条件

要求

使用的组件

背景信息

SNMP轮询输出

已知问题说明

SNMP的CPU主机

缓解

相关信息

简介

本文档介绍如何使用简单网络管理协议(SNMP)来查询思科自适应安全设备(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内存的三个主要网段中搜索信息，如下所列。

1. 系统内存池

2. MEMPOOL_DMA池

3. MEMPOOL_GLOBAL_SHARED池

如果通过SNMP查询MEMPOOL_GLOBAL_SHARED池信息，则会导致CPU挂起。显然，当使用SNMP轮询内存统计信息时，在突发/过载流量时，您可能会看到数据包丢弃/超限，这些统计信息要求ASA通过其关联的大量内存来查询信息，从而导致SNMP相关CPU挂起。ASA的CPU在将CPU释放到其他进程之前可能由SNMP进程保留太久。如果通过ASA的数据速率足够高，接口计数器的超限将增加，数据包可能会被丢弃。

适用于单核和多核平台。建议不要使用内存池MIB轮询与show mem detail相关的统计信息，而只使用与show mem输出相关的MIB。可以从CLI运行show mem detail，以查看这些CPU主机。

SNMP的CPU主机

本节提供来自Cisco ASA的CPU占用消息示例。

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

避免使用enterprise.9.9.48.1.1.1.7，因为这是largest_contitus_memory的OID。此外，应避免企业。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主机。此“y”是动态生成的，可能与不同的Cisco ASA平台不同。

有关更多详细信息，请参阅CSCtx43501。

相关信息

- 技术支持和文档 - Cisco Systems