1k+ concurrent connections


#1

I have tons of gprs modems that connect at the same port(ex 9000), but
inside our network, every modem should have a unique port so the
applications can talk with they. The application its simple, i get a
connection request, authenticate the request on radius(a authentication
server AAA), if everything allright, i start listening on a random port.
So every application i have can send data to that port, and the modem
can send data back to the application too.

Today i have something like 1k concurrent connections, but i expect that
this number increase alot soon, maybe 3k or even more… The
application was made in c#, but dosent seam so good, need restart all
day, its slow and so… I need rewrite, and now is my question, what
should i use?

Ruby can handle using some network frakework like eventmachine?
Java? Erlang? C?

Don’t know, just need some advice…


#2

On Thu, May 14, 2009 at 2:37 PM, Diego B.
removed_email_address@domain.invalid wrote:

Today i have something like 1k concurrent connections, but i expect that
this number increase alot soon, maybe 3k or even more… The
application was made in c#, but dosent seam so good, need restart all
day, its slow and so… I need rewrite, and now is my question, what
should i use?

You can exceed that 1k connections threshold if you are using
EventMachine on a system that supports epoll (Linux) or kqueue.

EM performance is quite good. Whether the rest of your app would be
fast or not depends on how you write the code, probably. As for what
you should use…use what you are comfortable with. Ruby may or may
not be a good choice. If you are unsure, try to prototype what you
need, and see how well it works, and how you like it.

Kirk H.


#3

Diego B. schrieb:

application was made in c#, but dosent seam so good, need restart all
day, its slow and so… I need rewrite, and now is my question, what
should i use?

Ruby can handle using some network frakework like eventmachine?
Java? Erlang? C?

Use “Stackless Python” on FreeBSD 7.2 (no more giant locks)

Each TCP/IP connection with coroutines consumes less than 300 Byte
RAM!!!

No problem to handle +100.000 simultaneous connections saturated up to
bandwidth limit at minimum response times. Check out yourself!

Have fun, Guido Stepken