I wouldn't be so fast to discount the JVM. http-kit isn't exactly the only
game in town when it comes to websockets on the JVM. And also it's written
by a rather small team. I'd investigate other tools (Netty?) before
discounting an entire platform due to a quick glance at a single library.

Also, in this day and age, I question why anyone would need 200k
connections on a single box. Shard the server, use AWS auto scaling, there
are many ways to solve this sort of problem besides (as you mentioned)
putting all your eggs in one basket.

In the end any platform is going to be so taxed by 1mil or even 200k
connections that you are going to need to scale out to more boxes to do
anything besides handle ping requests.

So if you're doing something like a chat server, that's one thing, but if
you're doing actual processing, handling that many connections on a box
seems like premature optimization.

Timothy

On Wed, Oct 7, 2015 at 1:40 PM, Nick Pavlica <lini...@gmail.com> wrote:

> All,
>   Thanks for the great reply's thus far!  They have helped me get a better
> idea of what the issues may be on the JVM.
>
>   "Are you sure you are going to need that scale? 1mil connections is a
> pretty ambitious goal."
>
>   I'm not currently planning on 1-2 million connections on a single server
> at the moment.  I really wish I had those problems, but I would like to
> count on being able to achieve 100-200K on a single reasonably sized
> server.  Even if I could achieve 1-2 million connections on a server, I'm
> not sure it's the best idea to do so.  It seems like allot of coupling of
> the service to a single endpoint.  I sounds like Elxir/Erlang+x, or
> possibly Go, may be better at handling the concurrency components of my app
> until the JVM ships with a GC that's better suited to this kind of work.  I
> know that they are going to ship a new GC in 1.9, but I don't know if it
> will help out.
>
> Thanks!
> -- Nick
>
>
>
>
> On Tuesday, October 6, 2015 at 9:57:45 PM UTC-6, Nick Pavlica wrote:
>>
>> Dear Clojure/Java Experts,
>>   Earlier today I posted a question to the Immutant google group asking
>> them a question about large numbers of concurrent websocket connections and
>> their server.  A member of the group kindly responded with a link (
>> https://github.com/ptaoussanis/clojure-web-server-benchmarks)  to some
>> fairly recent benchmarks that included a number of Clojure/Java servers.
>> After looking at the numbers in the benchmark, I was a little disappointed
>> to see that they were only serving 60K connections as compared to other
>> solutions like Erlang which seem to be capable of 1-2+ million connections
>> on similar hardware.  The difference on the surface seems dramatic, and I
>> was wondering if someone could help clarify the numbers for me.  It makes
>> me wounder if there is a JVM solution that can even meet these numbers half
>> way, or if I'm missing something?
>>
>> Many Thanks!
>> --Nick
>>
>>
>> ####### Discussion from the Immutant Google group ######################
>>
>> All,
>>   I'm a new Clojure developer, and I'm looking for a webserver that can
>> handle a large number of concurrent websocket connections.  I understand
>> that this question is a little/very vague, and is dependent on many factors
>> like the OS, it's Kernal, amount of RAM in the system, etc.  However, there
>> are a number of generalized claims out there, and I was wondering if anyone
>> has done any basic testing/benchmarking with Immutant/Undertow?
>>
>> Examples:
>>
>> - http://www.http-kit.org/600k-concurrent-connection-http-kit.html
>>
>> -
>> http://highscalability.com/blog/2013/5/13/the-secret-to-10-million-concurrent-connections-the-kernel-i.html
>>
>> - https://en.wikipedia.org/wiki/C10k_problem
>>
>> - https://vimeo.com/44312354
>>
>> - And so on ...
>>
>> Thanks!
>> --Nick
>>
>>
>> --------------------------------------------------------------------------------------------------
>>
>> Hi Nick,
>> Here are some fairly recent benchmarks that are relevant:
>> https://github.com/ptaoussanis/clojure-web-server-benchmarks
>>
>> --Sven
>>
>> -------------------------------------------------------------------------------------------------
>>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>



-- 
“One of the main causes of the fall of the Roman Empire was that–lacking
zero–they had no way to indicate successful termination of their C
programs.”
(Robert Firth)

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to