Date: Tue, 19 Nov 1996 10:16:13 -0500 From: dennis@etinc.com (dennis) To: Tony Li <tli@jnx.com> Cc: isp@freebsd.org Subject: Re: changed to: Frac T3? Message-ID: <199611191516.KAA06950@etinc.com>
next in thread | raw e-mail | index | archive | help
Tony Li writes.... > However, less clear to me is that your argument against > having any "significant non-routing load" on a router applies to UNIX > based routers. Maybe someone like David or Bruce could clarify this. > >Simple to demonstrate. Take a compute bound process which generates and >receives packets periodically. This emulates your routing protocol. Start >a kernel build. You'll notice a non-trivial performance hit in interactive >response and computation by your routing protocol. Now renice your kernel >build. Things get better, but that process still consumes bus cycles, >physical memory, and gets some share of the CPU. Add more load until >processes start paging. You'll note that the progress of your 'routing >protocol' degrades further. Pretty soon, your timers start to slip. >You're now on the brink of collapse. > >The result is simple: routing protocols need a guaranteed minimal amount of >CPU and I/O to survive. Lacking strict resource controls under Unix, the >best way of delivering that guarantee is to exclude other load from the >box. For a seriously robust router, you'd also need to put a cap on the >amount of time spent in interrupt processing. I think that tony has been working on scarce resouce machines for too long. You buy time with buffer space, and buffer space in a freebsd enviroment is rather abundant. You've got hardware buffering, and OS buffering, all which need to compensate for the time needed to service the interrupts. At T1 there is no issue, because you can buffer several full timeouts worth of data. The issue with high speed is that your interpacket process time is very short, and you cant reasonably buffer 10MB (2 seconds worth of receive data at T3) without swamping the machine. I think building a freebsd box with 1 100Mbs ethernet and 1very high speed interface is fairly easy...because you can control the process flow . Its when you've got several interfaces that it gets a little hairy, particularly with multiple bus masters where its difficult or impossible to control priority. Dennis
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199611191516.KAA06950>
