Have you had a look at Chronicle? They have built up an entire infrastructure that is off-heap so there is no GC.
http://chronicle.software/products/chronicle-engine/ https://github.com/OpenHFT/Chronicle-Engine There is a free version and a paid for version. They have broken it into parts so you can use just the off-heap Map/Set/Logger/Queue. There isn't a web server, just a processing engine, so you would be rolling a lot of it on your own. But it sure is fast. On Wednesday, October 7, 2015 at 5:43:26 PM UTC-4, Nick Pavlica wrote: > > Hi Timothy & Moe, > Thanks for your feedback! I realize that we are speaking very generally > on this thread, and know that there are many ways to solve the complex > problems we face as developers. I'm trying to understand the current know > limitations of using great tools like Clojure to solve the problems I'm > facing. Clojure is bound by the JVM which wasn't directly designed to > address high concurrency needs in the same way that Erlang/Go/etc. are. My > experience with Java/JVM in the past was that it was more focused on raw > throughput, and less about high levels of concurrency. I was hoping that > there were some good high concurrency solutions in place. That's what > prompted my original question about the only benchmarks that I could find. > If you have any additonal benchmarks, papers, etc., to share on this > subject, it would be great! > > Timothy Wrote: > "I'd investigate other tools (Netty?) before discounting an entire > platform" > - I'm open to any suggestions. However, I believe that Aleph is > build on Netty. > > "I question why anyone would need 200k connections on a single > box, use AWS auto scaling" > - There are many reasons, but in my case I'm paying for each > server, and I have to maintain not only the ones that I need to get the > work done, but ones I need for redundancy etc. There is a huge business > case for doing the same work on one server that would otherwise take two > or three. An AWS server equipped similarly to the one in the benchmark is > running about $1200/month, adding two more would obviously increase my > costs by $2400/month or $28,000/year. > > Mo Wrote: > "The github webserver benchmarks also contain many numbers above > 200,000 qps, for a variety of other webservers - right?" > - Yes, they are really great at throughput, but that's not > necessarily the primary metric that I'm looking for. I'm trying to > determine if they are reliable and perform reasonably well with many > connections. I realize that http-kit made a claim of 600K connections in > 2013. But I can't find any other supporting evidence that it can do that > reliably. It also seems to have stagnated a bit as a project which is > unfortunate. > > Thanks Again for your input and guidance! > -- 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.