Re: Some results running CloudController under JRuby


Dieu Cao <dcao@...>
 

Hi Steffen,

Cool stuff. It's good to see there's some improvement under jruby.
Would be interested to see how this performs on aws or on soft layer.
Also, were you able to run CATS?
Or is more work needed to deal with NATS etc?
Other pros/cons that you've found?

-Dieu
CF CAPI PM



On Mon, Oct 19, 2015 at 1:25 PM, Steffen Uhlig <Steffen.Uhlig(a)de.ibm.com>
wrote:

Hi,

the Flintstone team recently spent some time researching the potential
benefits of running the CloudController under JRuby. We were hoping to find
evidence that JRuby (and the underlying JVM) would allow us to make better
use of multiple cores, and maybe also lead to significant response time
improvements when answering many parallel requests.

This exercise wasn't set up as a scientific benchmark; it is more of a
spike that would allow us to judge whether it is worth investigating the
next level of detail.

We would like to share some early results in the hope to get feedback from
the community.

In our measurements, we saw 20..30% improvement in both average response
time and throughput when 10 or more concurrent requests were made (using
ApacheBench against the `/v2/orgs/*/spaces` endpoint).

Graphs:
* Throughput: https://goo.gl/NuWkvf
* Response Time: https://goo.gl/ItPBHN

We patched a CC VM to use JRuby 9000 under OpenJDK 8. WEBrick was used as
we weren't able to quickly find a drop-in replacement for Thin (as used
under MRI). All measurements were taken on a 2014 MacBook Pro running
Cloudfoundry in a BOSH Lite environment. Simulating network latency by
adding a 100 ms sleep to each request did not change the overall picture.

For more details see the spreadsheet* and our repository** with the test
scripts.

Steffen
(on behalf of the Flintstone Team)

*
https://docs.google.com/spreadsheets/d/1C1raorozKrf_RO-fiS5Nw38GPsMMgAegyw5iCxO8VT0/

** https://github.com/suhlig/jruby-scalability

Join {cf-dev@lists.cloudfoundry.org to automatically receive all group messages.