Description

This Article explains the reason behind high memory utilization on the backup routing engine:

user@device> show chassis routing-engine | match "slot|elec|state|time|Memory "

 Slot 0:
   Current state                 Master
   Election priority             Master (default)
   Memory utilization         29 percent
...
 Slot 1:
   Current state                 Backup
   Election priority             Backup (default)
   Memory utilization         89 percent


 

 

Symptoms

The following log may help identify the issue: 

user@device> show system processes extensive | match % | except " 0.00%" | except "Inuse|idle|nhinfo"
67129 root      36    0 26768M 25700M CPU5    5  55:05  23.00% rpd{rpd}

user@device> show system processes extensive | match % | except " 0.00%" | except "Inuse|idle|nhinfo"
67129 root      23    0 27488M 26273M kqread  5  67:36   6.40% rpd{rpd}

 

Solution

Memory leak may occur on Backup RE, when the contribute nh flap , such as member interface of AE is brought down or brought up. The memory leak may occur when building unilist nexthop in backup rpd.

On all Junos platforms with dual REs, rpd memory leak may be seen when an AE member interface flaps ,or contribute nh flap,  or immediate restart of master RE. The memory leak was observed be around 32 bytes per session, the leak is only seen when an unilist nexthop have more than 8 legs.

This issue might be seen if the following conditions are met:
* On all Junos platforms with dual REs
* GRES (Graceful Routing Engine Switchover) and NSR (Nonstop Active Routing) are enabled
* On AE member interface flap or contribute nh flap triggered unilist nh udpate
* On immediate restart of master RE
* On unilist nh with more than 8 legs

In order to resolve the issue, upgrade to a fixed release. Refer to PR1539601 .

We can temperately address the problem by deactivating/activating GRES and NSR before Junos upgrade. The work plan is:

>configure
 
#delete routing-options nonstop-routing
#delete chassis redundancy graceful-switchover
#deactivate routing-options nsr-phantom-holdtime
#commit
 
After 30mins, rollback the configuration:
 
#rollback 1
#commit


 

Modification History

2024-07-09: add commands example to the solution part