TLDR: If your router is idle and you see a load average > 0.00, check if
odhcp6c is running
dhcpv6.script every 3 seconds. If so, configure
ra_holdoff to 30, the old pre-18.06 default. This will reduce the idle load average.
If your router is idle and the
uptime command shows a load average much bigger than 0.00, like, 0.10 or 0.20, especially on an older router, run
ps | grep [o]dhcp6c every second in a shell. If you see TWO instances of
odhcp6c every 3 seconds (one instance is normal, the other instance is about to run
dhcpv6.script), it may mean that your ISP is sending an IPv6 DHCP RA Update message every 3 seconds, which
odhcp6c deals with by running
dhcpv6.script every 3 seconds, which consumes some CPU load. This is explained in this related issue on Gluon.
If you want to reduce your idle CPU load by processing IPv6 DHCP RA Updates less frequently and you don't mind being less standards compliant, you can configure the ra_holdoff option to 30, the old pre-18.06 value. According to this post, you can configure that by running:
uci set network.client.ra_holdoff=30 uci commit network reboot
/etc/config/network directly and run
Once I made this change, my idle load went back to 0.00 or very close to 0.00.