Page MenuHomeVyOS Platform

PPPoE Server overhead on virtual interfaces creation
Closed, ResolvedPublicBUG

Description

On each ppp interface creation, we can see excess call to isis (isis is not configured), and udev

Jan 23 19:10:00 R2-QAT systemd-udevd[31716]: link_config: autonegotiation is unset or enabled, the speed and duplex are not writable.
Jan 23 19:10:00 R2-QAT isisd[1719]: circuit already disconnected

It makes pretty overhead on high load PPPoE BRAS on client's mass authentication.
It will be good to fix this moment.

Proposition:
Run isis only if it configured as we do it with PIM/IGMP (pimd daemon)
Exclude udev call for ppp interfaces

Details

Difficulty level
Hard (possibly days)
Version
1.4-rolling-202101171022
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Unspecified (possibly destroys the router)
Issue type
Unspecified (please specify)

Event Timeline

Unknown Object (User) created this task.Jan 23 2021, 7:23 PM
Unknown Object (User) added a comment.Mar 9 2021, 7:18 PM

Also, add some overhead netplug

top - 19:14:34 up 26 min,  1 user,  load average: 10.29, 13.17, 8.57
Tasks: 568 total,   5 running, 228 sleeping,   0 stopped, 335 zombie
%Cpu0  :  5.0 us, 10.6 sy,  0.0 ni, 84.4 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  9.8 us, 15.2 sy,  0.0 ni, 75.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  : 40.7 us,  3.0 sy,  0.0 ni, 56.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :  9.6 us, 86.4 sy,  0.0 ni,  4.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   3870.9 total,   1375.2 free,   1499.9 used,    995.8 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   1716.8 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                                                                                                                  
  978 root      20   0    2908   2056   1256 R  96.7   0.1   8:13.47 netplugd                                                                                                                                                                                                 
 1062 frr       20   0  748900 123964   3132 R  41.2   3.1   4:12.84 zebra                                                                                                                                                                                                    
27259 root      20   0  381636  64248   4552 S  19.6   1.6   2:39.54 accel-pppd

For high performance also required to decrease log level accel-ppp daemon on the fly. accel-cmd reload allow this changes

Unknown Object (User) added a comment.Mar 11 2021, 12:52 PM

Configured SNMP also add impact

top - 12:51:59 up  3:25,  2 users,  load average: 1.35, 0.70, 0.28
Tasks: 214 total,   2 running, 210 sleeping,   2 stopped,   0 zombie
%Cpu0  :  0.0 us,  0.0 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st
%Cpu1  : 22.6 us, 77.4 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  :  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   9972.9 total,   6710.1 free,   2044.5 used,   1218.3 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   7195.8 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                                                                                                                 
 4788 root      20   0   35132  16208   7384 R 100.0   0.2   2:44.87 snmpd
Unknown Object (User) added a comment.Mar 11 2021, 7:05 PM

Fresh SNMP Daemon has some option which might be helpful
https://manpages.debian.org/unstable/snmpd/snmpd.conf.5.en.html

ifmib_max_num_ifaces NUM

Sets the maximum number of interfaces included in IF-MIB data collection. For servers with a large number of interfaces (ppp, dummy, bridge, etc) the IF-MIB processing will take a large chunk of CPU for ioctl calls (on Linux). Setting a reasonable maximum for the CPU used will reduce the CPU load for IF-MIB processing. For example, configuring "ifmib_max_num_ifaces 500" will include only the first 500 interfaces based on ifindex and ignore all others for IF-MIB processing.
The default (without this configured) is to include all interfaces.

include_ifmib_iface_prefix PREFIX1 PREFIX2 ...

Sets the interface name prefixes to include in the IF-MIB data collection. For servers with a large number of interfaces (ppp, dummy, bridge, etc) the IF-MIB processing will take a large chunk of CPU for ioctl calls (on Linux). A set of space separated interface name prefixes will reduce the CPU load for IF-MIB processing. For example, configuring "include_ifmib_iface_prefix eth dummy lo" will include only interfaces with these prefixes and ignore all others for IF-MIB processing. If regex support is compiled in, each of the prefixes is a regular expression (which is not permitted to contain a space or tab character).
The default (without this configured) is to include all interfaces.
Unknown Object (User) added a comment.Mar 16 2021, 8:05 PM

To disable udev link_config redundancy call we need to delete /usr/lib/systemd/network/99-default.link

dmbaturin claimed this task.
dmbaturin edited projects, added VyOS 1.3 Equuleus; removed VyOS 1.3 Equuleus (1.3.6).
dmbaturin set Issue type to Unspecified (please specify).