Questions tagged [c10k]

c10k describes the ability of a server to handle 10,000 simultaneous clients.

36 questions
40
votes
3 answers

TCP/IP - Solving the C10K with the thread per client approach

After reading the famous C10k article and searching on the web about how things have evolved since it was written, I would like to know if it would be possible for a today's standard server to handle >10000 concurrent connections using a thread per…
Str1101
  • 859
  • 2
  • 12
  • 22
35
votes
7 answers

Is there any modern review of solutions to the 10000 client/sec problem

(Commonly called the C10K problem) Is there a more contemporary review of solutions to the c10k problem (Last updated: 2 Sept 2006), specifically focused on Linux (epoll, signalfd, eventfd, timerfd..) and libraries like libev or libevent? Something…
gdamjan
  • 998
  • 9
  • 12
12
votes
3 answers

Threads sitting idle = bad?

I want to support around 10,000 simultaneous HTTP clients on a small cluster of machines (as small as possible). I'd like to keep a connection to each client alive while the user is using the application, to allow the server to push updates. I…
ᴇʟᴇvᴀтᴇ
  • 12,285
  • 4
  • 43
  • 66
9
votes
6 answers

Writing a socket-based server in Python, recommended strategies?

I was recently reading this document which lists a number of strategies that could be employed to implement a socket server. Namely, they are: Serve many clients with each thread, and use nonblocking I/O and level-triggered readiness…
Ali Afshar
  • 40,967
  • 12
  • 95
  • 109
8
votes
9 answers

Java Socket Programming does not work for 10,000 clients

I can create multiple threads for supporting multi-client feature in socket programming; that's working fine. But if 10,000 clients want to be connected, my server cannot create so many threads. How can I manage the threads so that I can listen to…
Bapi
7
votes
3 answers

Apache and the c10k

How is Apache in respect to handling the c10k problem under normal conditions ? Say while running very small scripts with little data, or do I need to scale out if I use Apache? In the background heavy lifting is done by a few servers running…
Robert Gould
  • 68,773
  • 61
  • 187
  • 272
7
votes
6 answers

How to scale a TCP listener on modern multicore/multisocket machines

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…
Obi
  • 155
  • 2
  • 5
5
votes
9 answers

What are the theoretical performance limits on web servers?

In a currently deployed web server, what are the typical limits on its performance? I believe a meaningful answer would be one of 100, 1,000, 10,000, 100,000 or 1,000,000 requests/second, but which is true today? Which was true 5 years ago? Which…
John McAleely
  • 1,929
  • 2
  • 18
  • 35
5
votes
3 answers

How many open udp or tcp/ip connections can a linux machine have?

There are limits imposed by available memory, bandwidth, CPU, and of course, the network connectivity. But those can often be scaled vertically. Are there any other limiting factors on linux? Can they be overcome without kernel modifications? I…
Eloff
  • 20,828
  • 17
  • 83
  • 112
4
votes
1 answer

How to notify client's browser about some event on server?

I'm using python (Tornado) on server side and some javascript on a client side. I have the common situation - one user send a message to another. And I want server to notify client's browser (reciever of the message) about new message. How can I do…
Dmitry Belaventsev
  • 6,347
  • 12
  • 52
  • 75
4
votes
1 answer

GEvent / GUnicorn and the C10k issue

The C10K problem tells us about conventional web servers having at best a capacity of ~10k simoultaneous restrictions. Servers like nginx use a single-threaded model and asynchronous communication instead of threads to handle the incoming requests.…
Luis Masuelli
  • 12,079
  • 10
  • 49
  • 87
4
votes
2 answers

Readings on writing high-performance server in Java

Could anyone please introduce books/papers/articles that I should read If I want to write a high-performance RPC server in Java, which handles large number of concurrent connections(C10K or over), is fault-tolerant, can be scaled out, and maintains…
user28775
  • 41
  • 1
  • 3
4
votes
1 answer

Multithreaded socket server using libev

I'm implementing a socket server. All clients (up to 10k) are supposed to stay connected. Here's my current design: The main thread creates an event loop (use epoll by default) and a watcher for accepting clients. The accept callback Accept fd and…
rance.attack
  • 43
  • 1
  • 6
4
votes
1 answer

What about the C10k in practice?

I just tested a small application made using Tornado, and i'm far from the 10k simultanuous connections! To make the test, i've used Siege, under OpenSuse 12.2 64 bit, the machine is i7 with 8GB Here is the result: siege -c 4000 localhost:8000 I…
Abdelouahab Pp
  • 4,252
  • 11
  • 42
  • 65
3
votes
4 answers

What socket-based model should I use for many simultaneous connections?

I need to know what socket-based model is the best for servers with many simultaneous connections, exactly as in an MMORPG server. I've read about c10k, but what should I use, if for example my server would allow only 5000 clients at one time? …
Pythagoras of Samos
  • 3,051
  • 5
  • 29
  • 51
1
2 3