question concerning proper usage of kernel
variables net.bpf.bufsize and vm_kmem_size_max
Jin Guojun [VFFS]
jin at george.lbl.gov
Sat Jul 29 23:43:25 UTC 2006
Raymond Owens wrote:
>By hardware cache size, you are referring to the processor cache? If the box has two processors, should the value used for cache size in this calculation be doubled? In very general terms, what is the link between the net.bpf.bufsize and the cache? Thanks for info..
BPF was designed to use ping-pong buffers, which create a link to the cache.
It is not hard to see an individual bpf buffer size should not close to the
cache size if upper layer applications need to continue to capture packets.
If up layer program cannot drain the BPF buffer faster than the NIC to fill
the buffer, increasing buffer only gives you a short-time cushion at
Once buffers are filled, you will start to lose packets anyway.
Only situation to increasing BPF size above cache size is if applications
are designed for catching periodically bursting traffic, and the CPU/system
is slow enough and not able to compete with NIC I/O. Under such scenario,
you could to increase the BPF buffer size to cushion the surge.
> R. B. Riddick wrote:
> >--- Raymond Owens <owensr at comcast.net> wrote:
> >>Can VM_KMEM_SIZE_MAX be set manually with sysctl?
> >No, but you could set it with this procedure:
> >1. Insert the lines
> > vm.kmem_size=123456789
> > vm.kmem_size_max=1234567890
> > /boot/loader.conf
> >2. reboot
> >That should change those values...
> >(see src/sys/kern/kern_malloc.c)
> >I wonder, why your box needs such a big buffer? Do u have network traffic
> >bursts or so?
> Regardless what purpose is for, the net.bpf.bufsize should never
> set above hardware cache size. The best (optimal size) is 50% - 80%
> of the hardware cache size, unless original BPF is modified in some
> way I do not know.
> Such high bufsize will degrade performance.
More information about the freebsd-performance