C10k problem
Encyclopedia
The C10k problem refers to the problem of optimising web server
Web server
Web server can refer to either the hardware or the software that helps to deliver content that can be accessed through the Internet....

 software to handle a large number of clients at the same time (hence the name C10k - ten thousand connections). The problem of web 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.

While there are some specialized web servers that can handle more than ten thousand client connections, most web servers currently handle at most ten thousand clients simultaneously.

The problem's name is a numeronym
Numeronym
A numeronym is a number-based word.Most commonly, a numeronym is a word where a number is used to form an abbreviation . Pronouncing the letters and numbers may sound similar to the full word: "K9" for "canine"...

 for "ten thousand clients".

Servers which address the problem

A few web servers have been developed to counter the C10K problem:
  • nginx
    Nginx
    nginx is a Web server and a reverse proxy server for HTTP, SMTP, POP3 and IMAP protocols, with a strong focus on high concurrency, performance and low memory usage. It is licensed under a BSD-like license and it runs on Unix, Linux, BSD variants, Mac OS X, Solaris, and Microsoft Windows.- Overview...

    , which relies on an event-driven (asynchronous) architecture, instead of thread
    Thread (computer science)
    In computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process...

    s, to handle requests (WordPress.com
    WordPress.com
    WordPress.com is a weblog hosting provider owned by Automattic which opened to beta testers on August 8, 2005 and opened to the public on November 21, 2005. It is powered by the open source WordPress software...

     uses nginx to solve the C10K problem)
  • Lighttpd
    Lighttpd
    lighttpd is an open-source web server more optimized for speed-critical environments than common products while remaining standards-compliant, secure and flexible...

    , which relies on an asynchronous architecture to handle requests
  • Cherokee
    Cherokee (Webserver)
    Cherokee is an open-source Cross-platform Web server that runs on Linux, BSD variants, Solaris, Mac OS X, and Microsoft Windows. It is a lightweight, high-performance Web Server/reverse proxy licensed under the GNU General Public License. Its goal is to be fast and fully functional yet still light...

    , a lightweight web server
  • Tornado
    Tornado (web server)
    Tornado is a scalable, non-blocking web server and web application framework. It was developed for use by FriendFeed; the company was acquired by Facebook in 2009 and Tornado was open-sourced soon after.- Performance :...

    , a non-blocking web server and web application framework
    Web application framework
    A web application framework is a software framework that is designed to support the development of dynamic websites, web applications and web services. The framework aims to alleviate the overhead associated with common activities performed in Web development...

     written in Python
    Python
    The Pythonidae, commonly known simply as pythons, from the Greek word python-πυθων, are a family of non-venomous snakes found in Africa, Asia and Australia. Among its members are some of the largest snakes in the world...

  • Apache Deft, asynchronous, non-blocking web server running on the JVM
  • JBoss Netty
    JBoss Netty
    JBoss Netty is a New I/O client-server framework for the development of Java network applications such as protocol servers and clients. The asynchronous event-driven network application framework and tools is used to simplify network programming such as TCP and UDP socket servers. Netty includes...

    , a NIO client server framework which enables quick and easy development of network applications such as protocol servers and clients
  • Node.js
    Node.js
    Node.js is a software system designed for writing highly-scalable internet applications, notably web servers.Programs are written in JavaScript, using event-driven, asynchronous I/O to minimize overhead and maximize scalability....

    , asynchronous, non-blocking web server running on Google's V8
    V8 (JavaScript engine)
    The Google V8 JavaScript Engine is an open source JavaScript engine developed by Google and ships with the Google Chrome web browser. Lars Bak is the head programmer....

     JavaScript engine
  • EventMachine, an asynchronous, non-blocking web server running on Ruby EventMachine
  • Yaws, a web server written in Erlang; profiting from Erlang's extremely lightweight processes.
  • Medusa
    Medusa
    In Greek mythology Medusa , " guardian, protectress") was a Gorgon, a chthonic monster, and a daughter of Phorcys and Ceto. The author Hyginus, interposes a generation and gives Medusa another chthonic pair as parents. Gazing directly upon her would turn onlookers to stone...

    , a non-blocking web server library written in Python
    Python
    The Pythonidae, commonly known simply as pythons, from the Greek word python-πυθων, are a family of non-venomous snakes found in Africa, Asia and Australia. Among its members are some of the largest snakes in the world...

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK