This patch adds a new socket driver config option:
acceptmax, which if not present defaults to 1. It
controls the number of new tcp connections which are
accepted on each spin of the driver thread (currently
1). It sets an upper limit, not a requirement, so if
set to 5 but only 4 connections are waiting, 4 are
accepted. If set to zero, all pending connections are
accepted.
See paper for details:
http://bcr2.uwaterloo.ca/~brecht/papers/getpaper.php?file=usenix-2004.pdf
Logged In: YES
user_id=43168
This seems interesting. This new tuning knob means that if
acceptmax is say, 10, AOLserver will accept up to 10 pending
connections with only a single select() call?
The select() call itself is expensive so being able to tune
that could be a big performance win for some people? This
sounds like something that AOL's load-testing Ops people
might very well be interested in, too?
Hm, I'm curious, given the "aggressive read-ahead" model of
AOLserver 4.x, how come this knob wasn't included already?
Jim just hadn't thought of it yet?
Drifting further off topic:
That "acceppt()able Strategies for Improving Web Server
Performance" paper tested 3 different example servers.
Considered as a group, they probably cover AOLserver's
architecture, but no single one of them actually matches
AOLserver's design. It would be interesting to see specific
AOLserver tests.
Also, while an excellent justification for including this
tuning knob in AOLserver, that paper is pretty narrow.
Links to other sources that more thoroughly discuss the
bigger picture of writing high-performance network server
software (e.g., Walsh's various SEDA papers?, some of the
links on the C10K page?) could also be useful.
Finally, it would also be really cool if someone in the know
would write a good design paper thoroughly explaining
AOLserver 4.0's server architecture. (Too bad we don't seem
to have an academic researcher motivated to write those
papers and such on AOLserver.)
Logged In: YES
user_id=43168
Has this improvement gone into the Head yet?
This functionality has been added.