本文說明如何使用簡單網路管理通訊協定(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客戶端的控制檯查詢記憶體統計資訊時,輸出看起來與此示例輸出類似。
對於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記憶體的三個主要段搜尋資訊,如下所示。
系統記憶體池
MEMPOOL_DMA池
MEMPOOL_GLOBAL_SHARED池
如果通過SNMP查詢MEMPOOL_GLOBAL_SHARED池資訊,則會導致CPU掛起。顯然,在使用SNMP輪詢記憶體統計資訊時,您可能會在突發/過載流量時看到資料包丟棄/溢位,這些統計資訊要求ASA通過與其關聯的巨大記憶體塊查詢資訊,從而導致與SNMP相關的CPU掛起。ASA的CPU可能被SNMP進程佔用太長時間,然後才釋放給其他進程。如果通過ASA的資料速率足夠高,則介面計數器的超限將增加,資料包可能會被丟棄。
它適用於單核和多核平台。建議不要使用記憶體池MIB輪詢那些與show mem detail相關的統計資訊,而只使用那些與show mem輸出關聯的MIB。您可以從CLI運行show mem detail來檢視這些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
避免輪詢與global_shared_mem_pool相關的OID。
運行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,因為這是maximum_continuous_memory的OID。此外,應避免enterprises.9.9.48.1.1.1.X.7,因為它與MEMPOOL_GLOBAL_SHARED相關。
輪詢來自系列9.9.48.1.1.x.y的OID時,請驗證「y」是否與global_mempool匹配;如果是,請避免使用這些OID來緩解SNMP CPU佔用問題。此「y」是動態生成的,可能因不同的Cisco ASA平台而異。
請參閱CSCtx43501以瞭解其他詳細資訊。
修訂 | 發佈日期 | 意見 |
---|---|---|
1.0 |
02-Aug-2013 |
初始版本 |