We have noticed high cpu on our backup routing engine, investigating shows that rpd is pegged at 100%.
7288 root 103 0 2199M 1351M CPU1 1 118.2H 100.00% rpd{rpd}
RPD stuck at 100% CPU usage
"show task jobs" saw Router-Advertisement/ipv6 ra
For RPD high CPU usage case, we can capture a series of "show task" output and enable task accounting to get detailed CPU usage data.
This RE shell script can be used to get the job done.
#!/bin/csh
foreach i ( 1 2 3 4 5 )
cli -c "show system processes extensive | save rpd_SYS$i.txt"
cli -c "set task accounting on"
echo Enable accounting and sleep 30
sleep 30
echo collect data
cli -c "show task accounting detail | save rpd_TAD$i.txt"
# works only for 18.3 DCB
cli -c "show task accounting extensive | save rpd_TAE$i.txt"
cli -c "set task accounting off"
cli -c "show task jobs | save rpd_JOBS$i.txt"
cli -c "show task io | save rpd_IO$i.txt"
cli -c "show task timers detail | save rpd_TIMER$i.txt"
cli -c "show task history | save rpd_HISTORY$i.txt"
cli -c "show task statistics | save rpd_STATS$i.txt"
top -d 1 > rpd_TOP$i.txt
end
In this case, "Router-Advertisement/ipv6 ra" had been found to consume most of the CPU cycle.
7341946 --- Router-Advertisement --> 99.7901 % time:6.37693
router1> show task jobs | no-more
Foreground jobs:
Pri Task Job Name Wait Flags
128 Router-Advertisement/ipv6 ra 0
Checking the RSI, virtual-router-only is confiured.
protocols {
router-advertisement {
interface irb.2001 {
virtual-router-only;
prefix 2406:3c00:0:2::/64;
}
With the above data, the high CPU issue is caused by PR1709629.