title: How to scale a TCP listener on modern multicore/multisocket machines
body: <p>I have a daemon to write in C, that will need to handle 20-150K TCP connections simultaneously.  They are long running connections, and rarely ever tear down.  They have a very small amount of data (rarely exceeding MTU even.. it's a stimulus/response protocol) in transmit at any given time, but response times to them are critical.  I'm wondering what the current UNIX community is using to get large amounts of sockets, and minimizing the latency on response of them.  I've seen designs revolving around multiplexing connects to fork worker pools, threads (per connection), static sized thread pools.  Any suggestions?</p>