User process starvation in FreeBSD 5.3
Stefan Bethke
stb at lassitu.de
Mon Jan 3 17:06:03 PST 2005
Am 03.01.2005 um 23:23 schrieb Youlin Feng:
> We are building a network appliance running FreeBSD 5.3 and under very
> heavy network traffic the user processes don't get scheduled for an
> unacceptable period of time. Marking the user process/thread real-time
> class doesn't help since the real-time user threads priorities are
> still
> lower than the interrupt threads.
The effect you're describing very much sounds like 'livelock': the
system is so overwhelmed with interrupts that it has no time to do
anything else but servicing them. FreeBSD offers polling(4), which is
intended to mitigate the overhead of a high interrupt rate on certain
network controllers; especially in high-throughput scenarios, it can
improve system load, throughput, and latency quite dramatically.
On the other hand, your hardware might just not be able handle the
packet rate.
I'd suggest asking this on freebsd-net, where I believe quite a few
people with experience in high-throughput setups are reading.
Cheers,
Stefan
--
Stefan Bethke <stb at lassitu.de> Fon +49 170 346 0140
More information about the freebsd-arch
mailing list