# 1k+ concurrent connections

**URL:** <https://www.ruby-forum.com/t/1k-concurrent-connections/168009>\
**Category:** Ruby\
**Created:** [May 14, 2009, 10:37pm UTC](https://www.ruby-forum.com/t/1k-concurrent-connections/168009 "2009-05-14T22:37:02Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![di3go](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/a9a28c/32.png) [@di3go](https://www.ruby-forum.com/u/di3go)\
**Post date:** [May 14, 2009, 10:37pm UTC](https://www.ruby-forum.com/t/1k-concurrent-connections/168009/1 "2009-05-14T22:37:02Z")

</div>

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…

---

<div class="post-metadata">

**Author:** ![di3go](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/a9a28c/32.png) [@di3go](https://www.ruby-forum.com/u/di3go)\
**Post date:** [May 14, 2009, 11:07pm UTC](https://www.ruby-forum.com/t/1k-concurrent-connections/168009/2 "2009-05-14T23:07:28Z")

</div>

On Thu, May 14, 2009 at 2:37 PM, Diego B.  
[removed\_email\_address@domain.invalid](mailto: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.

---

<div class="post-metadata">

**Author:** ![di3go](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/a9a28c/32.png) [@di3go](https://www.ruby-forum.com/u/di3go)\
**Post date:** [May 15, 2009, 1:30am UTC](https://www.ruby-forum.com/t/1k-concurrent-connections/168009/3 "2009-05-15T01:30:59Z")

</div>

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
