October 5
by Rasmus Andersson, tagged nginx, comet, http, push and pubsub, filed under software
Q: How well does the Nginx HTTP push module perform with 10 000 concurrent clients? (Ye olde C10k problem).
A: Very well. About 7 kB per client and practically zero CPU load.
This article describes how I performed the test, using three different hosts — my local computer, a Debian Linux server and a Mac OS X host simulating 10 000 clients.
Continue reading...
October 2
by Rasmus Andersson, tagged nginx, comet, http, push and pubsub, filed under software
One of the most cumbersome problems of implementing some kind of HTTP push a.k.a. Comet functionality is that the client (website) need to be served from the same host and on the same port as the actual push (long-polling or multipart response) mechanism. Now, as we need to maintain a high number of concurrent client connections we can not use traditional server-side applications like PHP or Ruby on Rails. Using PHP for instance would require one PHP process per client connection — the main memory would quickly become saturated and we’ll most likely hit some scary limit of fds and processes the kernel handles without being a sad little kernel.
For a little project I’m involved in I needed to have the best of two worlds and to a cheap price…
Continue reading...