Some gruesome moments with performance of FreeBSD at over 20K interfaces

Hartmut Brandt hartmut.brandt at dlr.de
Thu Apr 10 11:22:46 UTC 2014


On Thu, 10 Apr 2014, Vladislav Prodan wrote:

VP>> On Wed, 9 Apr 2014, Vladislav Prodan wrote:
VP>> 
VP>> VP>b) Service bsnmpd started at 12K interfaces, but immediately loaded CPU 
VP>> VP>at 80-100%
VP>> 
VP>> I could imagine that this is because of the statistics polling. bsnmp 
VP>> implements 64-bit interface statistics but we have only 32-bit statistics 
VP>> in the kernel. So it polls the kernel statistics for each interface on a 
VP>> rate that ensures that 32-bit don't overflow. If the interfaces are GBit 
VP>> or, worse, 10GBit interfaces the polling rate is rather high (in the order 
VP>> of seconds).
VP>> 
VP>> You should either make sure that the interfaces report sensible bitrates 
VP>> (I doubt that 20k interfaces could all be GBit interfaces) or force a slower 
VP>> polling interval by setting begemotIfForcePoll.0 to some large value.
VP>> 
VP>> harti
VP>> 
VP>
VP>Thanks for the tip.
VP>
VP>At least 10 interfaces to be 1Gb, and the rest no more than 50M.
VP>BegemotIfForcePoll parameter in this case a little help, you will be forced to stand another value for Gigabit Interface begemotIfForcePoll ...

Yeah. There is only one parameter.

You are running -STABLE, right? On current the statistics are 64-bit 
(I wonder whether the operation on these values is automatically atomic on 
all our platforms, though).

harti


More information about the freebsd-net mailing list