4 ms·
> Running a thread per client is famously known as The C10K Problem. Gonna have to be that guy: the C10K problem was "how to serve 10000 clients from a single
by IvyMike 3y ago
> Running a thread per client is famously known as The C10K Problem.
Gonna have to be that guy: the C10K problem was "how to serve 10000 clients from a single server" specifically in the 2000ish time-frame. The article links to the C10K problem page, which discusses the tradeoffs involved in at least five high-level strategies[1], only one of which is the strategy of running a thread per client [2].
[1] http://kegel.com/c10k.html#strategies http://kegel.com/c10k.html#strategies
[2] http://kegel.com/c10k.html#threaded http://kegel.com/c10k.html#threaded
- signa11 3y agoi think, it is time already to go from C10k -> C10m or somesuch.
- monocasa 3y agoYeah, there was talk of the C10M problem. Just like C10K was considered solved with event loops like epoll, kqueue, and IOCP, C10M is generally been considered solved with techniques that colocate your network stack and your business layer code. So DPDK on one side keeping everything in user space talking directly to the NIC, or for static resources Netflix style techniques of optimized pathways for KTLS+sendfile to keep the dataplane all in kernel space. With that you can avoid the copies from a buffer in a socket call to into the network device packet buffers.
- tontinton 3y agoYou're right, I'll fix it in the post. Thanks!