Bakul Shah wrote:
On Tue, 15 Jul 2008 15:39:09 PDT JINMEI Tatuya /
=?ISO-2022-JP?B?GyRCP0BMQEMjOkgbKEI=?= <[EMAIL PROTECTED]> wrote:
At Tue, 15 Jul 2008 15:12:31 -0700,
Bakul Shah <[EMAIL PROTECTED]> wrote:
Besides, I guess that the P1 versions severely suffer from heavy
overhead of select(2) when it regularly opens more than 1000 sockets.
Even if 'too many open file' messages are gone, many users won't
accept the increased load due to the overhead. Beta versions use
kqueue, eliminating the fundamental overhead as well as the (too low)
limitation of # of descriptors.
Or more portably you can use poll(2).
I've not played with poll(2) in BIND9, but as far as I understand it,
it doesn't solve the fundamental overhead issue here. For example,
the application should examine all possible descriptors even if only a
few of them are readable.
IIRC, when poll() returns n, you only look at the first n
values in the pollfd array so it is a win when you expect a
very small number of fds to be ready. In the select case you
have to test the bit array until you see the last ready fd.
Anyway, since this is a FreeBSD specific list, I believe we can safely
assume the existence of kqueue, unless we are talking about a very old
version:-)
Presumably kqueue has a lower cpu usage until the system gets
loaded at which point polling might win.
I don't think so, since kqueue only runs code associated with events
that have actually happened, and then only once until it's processed
where las I looked poll had more to do on each call.
also kqueue allows you to associate arbitrary identification
informnation with each event so you don't have to have extra code to
go from the fd to the event.. It's just way more efficient.
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[EMAIL PROTECTED]"
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[EMAIL PROTECTED]"