C10k problem
Computer networking optimization problem
- 2 min read
- 1 chapter
Related on Lably
Through Web server, State (computer science) and Operating system
The problem of socket server optimisation has been studied because a number of factors must be considered to allow a web server to support many clients. This can involve a combination of operating system constraints and web server software limitations. According to the scope of services to be made available and the capabilities of the operating system as well as hardware considerations such as multi-processing capabilities, a multi-threading model or a single threading model can be preferred. Concurrently with this aspect, which involves considerations regarding memory management (usually operating system related), strategies implied relate to the very diverse aspects of I/O management.
History
The term C10k was coined in 1999 by software engineer Dan Kegel, citing the Simtel FTP host, cdrom.com, serving 10,000 clients at once over 1 gigabit per second Ethernet in that year. The term has since been used for the general issue of large numbers of clients, with similar numeronyms for larger numbers of connections, most recently "C10M" in the 2010s to refer to 10 million concurrent connections.
By the early 2010s millions of connections on a single commodity 1U rackmount server became possible. Examples include WhatsApp serving over 2 million connections (with 24 cores using Erlang on FreeBSD), and MigratoryData serving 10–12 million connections (with 12 cores, using Java on Linux).
Common applications of very high numbers of connections include general public servers that have to serve thousands or even millions of users at a time, such as file servers, FTP servers, proxy servers, web servers, and load balancers.

