Forum: Ruby 1k+ concurrent connections

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
7d9b52b827844af1dde7dc3639a83243?d=identicon&s=25 Diego Bernardes (di3go)
on 2009-05-14 22:37
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...
Ca8efd0ba834b02b9b7dd34b5c6c2721?d=identicon&s=25 Kirk Haines (Guest)
on 2009-05-14 23:07
(Received via mailing list)
On Thu, May 14, 2009 at 2:37 PM, Diego Bernardes
<di3go.bernardes@gmail.com> 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 Haines
0b97a9996946c64219bf56c1533cf5df?d=identicon&s=25 Guido Stepken (Guest)
on 2009-05-15 01:30
(Received via mailing list)
Diego Bernardes 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
This topic is locked and can not be replied to.