目录

简介

背景信息

问题摘要

限制

可能的解决方法/解决方案

简介

本文档介绍思科路由器上的BGP虚拟内存(RLIMIT)问题，并概述遇到此问题时应采取的措施。

背景信息

Rlimit定义了XR中进程的资源限制，并且因每个进程内存要求而异。这些限制在版本之间可能不同，因为它们可以根据新的需求和发现进行调整。限制由组件（如共享内存、内核和dllmgr）的固定内存分配确定，因此不能通过CLI进行配置。

问题摘要

Memory usage spiked to 90% after the BGP peer connection was established.

This can also cause the BGP process to crash.

RP/0/RSP0/CPU0:Jul 15 01:04:24.815 GMT: bgp[1087]: %HA-HA_WD_LIB-4-RLIMIT :

wd_handle_sigxfsz: Reached 90% of RLIMIT_DATA RP/0/RSP0/CPU0:Jul

15 01:04:24.815 GMT: bgp[1087]:

%ROUTING-BGP-4-VIRTUAL_MEMORY_LIMIT_THRESHOLD_REACHED :

BGP virtual memory has reached 90% of the maximum allowed limit of 2281 MB for this platform This command shows the maximum amount of memory that any process can access.

RP/0/RSP0/CPU0:ipdsl-slp-colonias-4#show bgp process performance-statistics |

i RLIMIT Tue Feb 14 15:28:14.051 CDT Platform RLIMIT max: 2281701376 bytes

<<<<<<<<<<<

此命令显示堆中的内存限制：

RP/0/RSP0/CPU0:ipdsl-slp-colonias-4#show bgp instance all scale BGP instance 0: 'default' ========================= VRF: default Neighbors Configured: 2 Established: 2 Address-Family Prefixes Paths PathElem Prefix Path PathElem Memory Memory Memory IPv4 Unicast 112649 225065 112649 9.88MB 13.74MB 6.77MB IPv6 Unicast 6358 12581 6358 645.73KB 786.31KB 391.17KB ------------------------------------------------------------------------------ Total 119007 237646 119007 10.51MB 14.50MB 7.15MB node: node0_RSP0_CPU0 ------------------------------------------------------------------ JID Text Data Stack Dynamic Dyn-Limit Shm-Tot Phy-Tot Process ------ ---------- ---------- ---------- ---------- ---------- ---------- ---------- ------- 1067 1M 10M 572K 2001M 2175M 145M 2012M bgp <<<<<<<<<<<<<< 343 8K 12K 128K 421M 1024M 30M 422M mibd_infra 1141 22M 5M 1012K 374M 2048M 95M 380M netconf Total text: 22893 pages data: 24102 pages stack: 6765 pages malloced: 21257 pages

限制

RLIMIT限制是cXR 32位系统的一个关键因素，在该系统中会强制实施内存上限。此限制会直接影响可用于BGP进程的内存。

但是，在eXR 64位系统上，RLIMIT会显著增加。此增强功能可使BGP进程的可用内存倍增，从而为处理更大的路由表和更多对等体提供了更稳健的环境。

请查找内存分配的比较：

Device with RSP880-LT-TR and eXR has the RLIMIT for BGP as 7.4GB

RP/0/RSP0/CPU0:RP#show processes memory detail 10523 JID

Text Data Stack Dynamic Dyn-Limit Shm-Tot Phy-Tot Process

======================================================================

1087 2M 1030M 136K 41M 7447M 131M 183M bgp

Device having RSP880-LT-TR and cXR has the RLIMIT for BGP as 2.5GB

RP/0/RSP0/CPU0:RP#show processes memory detail 1087 JID Text Data Stack

Dynamic Dyn-Limit Shm-Tot Phy-Tot Process ------ ---------- ---------- ----------

---------- ---------- ---------- ---------- ------- 1087 1M 10M 356K 31M 2574M

35M 41M bgp

可能的解决方法/解决方案

要解决BGP的内存问题，可以考虑以下步骤：

升级到64位系统：

- BGP受益于64位系统上更大的内存分配，按照RLIMIT的定义，约为8 GB。此升级可以帮助管理BGP增加的内存需求。

更改ASR9k配置文件：

- 将ASR9k配置文件从默认设置切换为L3XL配置文件。此调整会增加BGP的内存分配，有助于缓解内存压力。

- 请注意，更改为L3XL配置文件会减少可用于其他进程的内存。因此，有必要评估其对系统整体性能的影响。

- 在实施L3XL配置文件之前，请仔细阅读平台文档，以了解其影响并确保与您的系统要求兼容。

- 计算soft-reconfiguration inbound always旋钮。

- 使用soft-reconfiguration inbound always命令需要占用大量内存，尤其是存在其他路径时。

- 检查缺少路由刷新功能的BGP对等体，并确保仅为这些特定对等体启用此命令。

- 从支持路由刷新以回收内存的对等设备中移除此命令。

- 实施路由策略以拒绝某些前缀：

- 创建路由策略以拒绝某些前缀，这可以通过限制需要处理和存储的路由数量来帮助减少内存使用。

- 减少BGP对等体的数量

- 减少路由器上的BGP对等体数量，以降低整体内存消耗。如果您有大量导致高内存使用量的对等设备，此步骤尤其有用。

- 重新启动BGP进程或重新加载路由器

- 手动重新启动BGP进程或重新加载路由器可以帮助释放内存。这是一个临时解决方案，但可有效缓解即时的内存问题。

- 评估内存密集型功能

- 请注意，某些功能（如不间断路由[NSR]、附加路径和最大路径）可能会增加内存使用率。

- 评估这些功能的必要性，考虑禁用或优化这些功能（如果它们对于网络运行来说并不重要）。

这些步骤可以更好地管理内存使用率，并确保BGP进程的稳定性和性能。

收集日志：

show tech-support

show tech-support routing bgp

show processes memory detail <job id> location 0/rsp0/cpu0

show processes memory detail <job id> location 0/rsp1/cpu0

show memory summary location all

show memory heap <job id>  location 0/rsp0/cpu0

show memory heap <job id>  location 0/rsp1/cpu0

show memory heap dllname <job id>

show bgp scale

show bgp scale standby

show bgp all all process performance-statistics

show bgp all all process performance-statistics detail