Do C10K testing with gevent
engineering.monetate.com
engineering.monetate.com
C10K is not even close to being a real problem any more. I expect my phone can handle 10K connections.
Making a million outbound connections, on the other hand, requires a little more care. Mostly because you need 16+ IPs. I ended up writing a small tool in C with libevent to make 1M http connections: http://www.metabrew.com/article/a-million-user-comet-applica...
EDIT: metabrew has very good tutorial - which should be a starting point for everybody new to this space!
2. The problem is, that Amazon EC2 doesn't support multiple IP aliases per instance. To generate 1M connections, I had to launch a cluster of 17 instances to generate 1M clients. On physical server with a lot of RAM, you can just create 17 IP aliases.
3. Tsung is a great tool - but hard to control and has it's own limits. So if you need to do large scale loadtesting - better write your own tool.
I asked this question because if one uses 17 instances to handle 1M connections, for each instance is around 50k. I am more interested in knowing the possibility and performance for one machine to handle 1M connections.
LocalIP:LocalPort -> ServerIP,ServerPort
So even if number of ports is limited by 64K, total number of incoming sockets per IP address isn't.
And thus, the total amount of sockets you can have open to that server is limited by the amount of IP's your machine has.
It's a solved problem for me. That is why I don't understand why many high profile realtime web startups (like Convore), still using inferior solutions, like Python eventlib or gevent, which at most let them handle hundreds-to-thousands of clients.
EDIT: metabrew has very good tutorial - which should be a starting point for everybody new to this space!
http://www.metabrew.com/article/a-million-user-comet-applica...
http://www.metabrew.com/article/a-million-user-comet-applica...
By Richard Jones of the Last.fm?
Thank you for your replying. The original C10k from Dan Kegel was a guideline for me when I worked on project during 2003 - 2006. I am wondering what is the latest progress in this area. I am glad this problem is solved to you. I will check out niver tech in future when the problem comes up.
https://github.com/newsapps/beeswithmachineguns
I don't remember how I came across it but it's the same concept: fire up a swarm of EC2 instances to pound the shit out of your site.