Cisco 2600 系列路由器记录了很多“内存分配失败”错误

网络工程 cisco-ios-12 路由器 记忆 错误
2021-07-04 20:25:24

我们在 2600 系列路由器上随机收到以下两条错误消息。Syslog 显示路由器直到几天前一直很好。重新启动最有可能解决这个问题,还是最有可能是这个古老野兽的记忆错误?

-Process= "SNMP ConfCopyProc", ipl= 0, pid= 81
-Traceback= 80476224 80478348 8047224C 803E39A0 803E114C 803E0DA0 80450AEC 80450B34 803E5DA4 8045575C 803E1444 803BDA5C 803BDF20 804B345C 804AEA50 804AEB58
May 28 10:06:02.286: %SYS-2-MALLOCFAIL: Memory allocation of 32768 bytes failed from 0x80472248, alignment 0
Pool: Processor  Free: 24472  Cause: Not enough free memory
Alternate Pool: None  Free: 0  Cause: No Alternate pool


-Process= "Virtual Exec", ipl= 0, pid= 67
-Traceback= 80476224 80478348 8047224C 803E39A0 803E114C 803E0DA0 80450AEC 80450B34 803E5DA4 8045575C 803E1444 803BDA5C 803BDF20 803F1FDC 803F20FC 803E368C
May 28 10:06:38.739: %SYS-2-MALLOCFAIL: Memory allocation of 32768 bytes failed from 0x80472248, alignment 0
Pool: Processor  Free: 23512  Cause: Not enough free memory
Alternate Pool: None  Free: 0  Cause: No Alternate pool

运行 12.3(26) 版本的 IOS。设备正常运行时间为两个月。

4个回答

执行“show proc mem sorted”并检查最大的内存用户。如果这与配置无关,则可能是代码中的错误。如果这与配置有关,您可以考虑重新/取消配置不必要的服务。

由于 IOS 无法对内存进行碎片整理并且您无法回收它,除非一些大的分配过程释放内存,因此恐怕要恢复正常操作,您需要重新启动它。然后我将开始密切监视内存分配总量和使用它的主要进程。如果它增长并且路由器没有做任何额外的事情,那么它可能是“增长”过程中的错误。12.3(26) 有一些面向内存的错误,但您需要审核配置以检查您是否受到影响。

如果您遇到内存分配错误,则应该重新加载以清除正在发生的任何事情,至少是暂时的。

看起来您的内存不足(原因:可用内存不足)。我会考虑升级内存,这是最便宜的选择,或者如果这个路由器足够重要,甚至升级到可以更容易满足您需求的新平台。

另外,尝试升级IOS。这可能是轻微的内存泄漏。

重新启动肯定会暂时缓解问题,但随着时间的推移和路由器内存负载,您可能会遇到相同的日志错误。

您可以删除您为此路由器拥有的某些角色,或者更不常见的方法是安排每 1 周或更晚的自动重新加载。

我不相信这是错误的记忆。列出的错误是内存分配失败。重新加载会暂时治愈它,但不会解决根本原因。需要更多信息来确定来源。看看您是否可以找出正在占用内存的进程。sh 进程内存