本文档介绍如何使用简单网络管理协议(SNMP)获取空闲和最大的连续内存块。
本文档没有任何特定的要求。
本文档中的信息仅对Cisco IOS®设备有效。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
内存泄漏和异常网络事件是监控内存消耗和分段的主要原因。当进程请求内存块时,内存泄漏发生,而当它完成时不释放该块。最终,该过程会耗尽所有可用内存。这被视为一个漏洞,最终导致路由器崩溃。内存不足会阻止路由器创建更多缓冲区。内存不足也会影响路由器扩展路由表等数据结构的能力。
监控Cisco IOS软件设备上的空闲内存和最大的空闲内存块是路由器运行状况的良好指标。要查找的变量是ciscoMemoryPoolFree(.1.3.6.1.4.1.9.48.1.1.1.6)和ciscoMemoryPoolLargestFree(.1.3.6.1.4.1.9.48.1.1.7)CISCO-MEMORY-POOL-MIB。
.1.3.6.1.4.1.9.9.48.1.1.1.6 ciscoMemoryPoolFree OBJECT-TYPE -- FROM CISCO-MEMORY-POOL-MIB SYNTAX Gauge MAX-ACCESS read-only STATUS Current DESCRIPTION "Indicates the number of bytes from the memory pool that are currently unused on the managed device. ::= { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1) cisco(9) ciscoMgmt(9) ciscoMemoryPoolMIB(48) ciscoMemoryPoolObjects(1) ciscoMemoryPoolTable(1) ciscoMemoryPoolEntry(1) 6 }
注意: ciscoMemoryPoolUsed和ciscoMemoryPoolFree的总和是池中的内存总量。
.1.3.6.1.4.1.9.9.48.1.1.1.7 ciscoMemoryPoolLargestFree OBJECT-TYPE -- FROM CISCO-MEMORY-POOL-MIB SYNTAX Gauge MAX-ACCESS read-only STATUS Current DESCRIPTION "Indicates the largest number of contiguous bytes from the memory pool that are currently unused on the managed device." ::= { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1) cisco(9) ciscoMgmt(9) ciscoMemoryPoolMIB(48) ciscoMemoryPoolObjects(1) ciscoMemoryPoolTable(1) ciscoMemoryPoolEntry(1) 7 }
下表显示高端和低端路由器show memory命令的输出示例:
高端路由器(7xxx系列):
Router>show memory
头 | 总计(b) | 已用(b) | 免费(b) | 最低(b) | 最大(b) | |
---|---|---|---|---|---|---|
处理器 | 614708E0 | 112785184 A | 11720752 B | 101064432 C | 100574424 D | 100599288 E |
Fast | 614508E0 | 131072 A | 72664 B | 58408 C | 58408 D | 58364 E |
--更多 --
低端路由器(4xxx、2500、3600等系列):
Router>show memory
头 | 总计(b) | 已用(b) | 免费(b) | 最低(b) | 最大(b) | |
---|---|---|---|---|---|---|
处理器 | 6291DE80 | 16654720 A | 11768556 B | 4886164 C | 4538264 D | 4772980 E |
I/O | 3900000 | 7340032 A | 4898680 B | 2441352 C | 2290528 D | 2441116 E |
--更多 --
此信息在show memory表中突出显示:
A — “Total(b)”是加载Cisco IOS软件后处理器可用的内存总量(以字节为单位)。如果您想知道Cisco IOS软件在路由器上占用的内存量,请从路由器上安装的动态RAM(DRAM)或系统内存(processorRam)总量中减去此处显示的字节总数。总输入/输出(I/O)内存或快速内存基于安装在低端路由器上的物理I/O内存,或基于系统内存中在高端路由器上分配的数据包内存量(通常为路由/交换处理器(RSP)平台上的2 MB)。
.1.3.6.1.4.1.9.3.6.6 processorRam OBJECT-TYPE -- FROM OLD-CISCO-CHASSIS-MIB SYNTAX Integer MAX-ACCESS read-only STATUS Deprecated DESCRIPTION "Bytes of RAM available to CPU." ::= { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1) cisco(9) temporary(3) chassis(6) 6 }
B — “Used(b)”是路由器当前使用的(ciscoMemoryPoolUsed)的总内存量(以字节为单位)。
.1.3.6.1.4.1.9.9.48.1.1.1.5 ciscoMemoryPoolUsed OBJECT-TYPE -- FROM CISCO-MEMORY-POOL-MIB SYNTAX Gauge MAX-ACCESS read-only STATUS Current DESCRIPTION "Indicates the number of bytes from the memory pool that are currently in use by applications on the managed device." ::= { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1) cisco(9) ciscoMgmt(9) ciscoMemoryPoolMIB(48) ciscoMemoryPoolObjects(1) ciscoMemoryPoolTable(1) ciscoMemoryPoolEntry(1) 5 }
C — “Free(b)”是当前可用的[ciscoMemoryPoolFree(.1.3.6.1.4.1.9.48.1.1.1.6)或freeMem(.1.3.6.1.4.1.2.1.8)内存总量(以字节为单位)]。
1.3.6.1.4.1.9.2.1.8 freeMem OBJECT-TYPE -- FROM OLD-CISCO-SYS-MIB SYNTAX Integer MAX-ACCESS read-only STATUS Obsolete DESCRIPTION "The freeMem mib object is obsolete as of IOS 11.1 It has been replaced with the cisco memory pool mib" ::= { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1) cisco(9) local(2) lsystem(1) 8 }
D — “Lowest(b)”是自路由器上次重新加载以来某个时间点空闲的最低内存量。此值没有等效的MIB。
E — “Largest(b)”是路由器[ciscoMemoryPoolLargestFree .1.3.6.1.4.1.9.48.1.1.7)]中最大的连续可用内存块。这是此输出中要查看的最重要字段。