Content deleted Content added
m →History: C10M wikilink is broken, so just wrap it in quotes |
add an aosabook nginx reference and remove {{notability}}, as Kegel's c10k is very widely known concept; bold out Dan Kegel, as this concept is always credited back to him in all literature |
||
Line 1:
The '''C10k problem''' is the problem of optimising [[network socket]]s to handle a large number of clients at the same time.<ref name=C10K>{{cite web|url=http://www.kegel.com/c10k.html |title=The C10K problem |work= |archivedate=2013-07-18 |archiveurl=https://www.webcitation.org/6ICibHuyd?url=http://www.kegel.com/c10k.html |deadurl=
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 the I/O management.<ref name=Liu-Deters />
== History ==
The term was coined in 1999 by '''Dan Kegel''',{{r|aosa2:nginx}} citing the [[Simtel]] FTP host, [[cdrom.com]], serving 10,000 clients at once over 1 [[gigabit per second]] [[Ethernet]] in that year.<ref name="C10K" /> The term has since been used for the general issue of large number of clients, with similar numeronyms for larger number of connections, most recently "C10M" in the 2010s.<ref name=":0" />
By the early 2010s millions of connections on a single commodity 1U server became possible: over 2 million connections ([[WhatsApp]], 24 cores, using [[Erlang (programming language)|Erlang]] on [[FreeBSD]]),<ref>[http://blog.whatsapp.com/196/1-million-is-so-2011 1 million is so 2011]</ref><ref>[http://www.erlang-factory.com/upload/presentations/558/efsf2012-whatsapp-scaling.pdf Scaling to Millions of Simultaneous Connections], Rick Reed, ''WhatsApp''</ref> 10–12 million connections (MigratoryData, 12 cores, using [[Java (Programming language)|Java]] on [[Linux]])<ref name=":0">[https://mrotaru.wordpress.com/2015/05/20/how-migratorydata-solved-the-c10m-problem-10-million-concurrent-connections-on-a-single-commodity-server/ How MigratoryData solved the C10M problem: 10 Million Concurrent Connections on a Single Commodity Server]</ref><ref>[https://mrotaru.wordpress.com/2013/10/10/scaling-to-12-million-concurrent-connections-how-migratorydata-did-it/ Scaling to 12 Million Concurrent Connections: How MigratoryData Did It]</ref>
Line 12:
== See also ==
*[[Nginx]] was created to solve the C10k problem.{{r|C10K|aosa2:nginx}}
*[[Load balancing (computing)]]
*[[Event-driven architecture]]
Line 19:
== References ==
{{Reflist
<ref name=aosa2:nginx>{{cite book
|author= Andrew Alexeev
|section-url= http://www.aosabook.org/en/nginx.html
|section= §14. nginx; §14.1. Why Is High Concurrency Important?
|editor1= Amy Brown |editor2= Greg Wilson
|url= http://aosabook.org/en/index.html#aosa2
|title= The Architecture of Open Source Applications, Volume II: Structure, Scale and a Few More Fearless Hacks
|publisher= [[Lulu.com]] |publication-date= 2012 |isbn= 9781105571817
|quote= Around ten years ago, Daniel Kegel, a prominent software engineer, … Kegel's C10K manifest … solving the C10K problem of 10,000 simultaneous connections, [[nginx]] …
}}</ref>
}}
[[Category:Web server software]]
[[Category:Computer performance]]
|