sgen is getting ready for production

Monday, May 17, 2010 9 Comments

Last week I was running some tests together with Mark Probst on our test cluster using Plastic SCM and the new sgen garbage collector.

The load test consists on the following:

  • Each client downloads the entire project (runs an update from version control)
  • Creates a branch
  • Modifies 5 files
  • Checkins all changes
  • Goes back to step 1 (up to 5 times)

    So, we run 85 clients on 85 different machines against one single Plastic SCM server running MySql on Linux and using Mono + sgen.

    The results are: sgen, right now is only 15% slower than Boehm.


  • As you can see time gets better when you increase nursery size, but what's extremely better is overall memory usage: first VM peak mem is much lower and at the end of the test we checked how RES mem is also much, much lower. During the test memory consumption is also lower and you can see how sgen frees virtual memory (something you'll never see with Boehm, and ends up being a big problem).









    version (85 concurrent clients)time (sec)Peak VM(Gb)RES and GC (final)
    boehm gc4942.4600
    MONO_GC_PARAMS=nursery-size=4m
    10070.7200
    MONO_GC_PARAMS=nursery-size=16m6400.8200
    MONO_GC_PARAMS=nursery-size=32m5890.9200
    MONO_GC_PARAMS=nursery-size=256m5681.1200

    9 comments:

    1. How does RSS compare between sgen and Boehm?

      ReplyDelete
    2. In terms of memory usage SGEN is dramatically better than Boehm. Less than half of the mem info.

      ReplyDelete
    3. Is there a chance to get SGEN as default GC in the next Mono release? :)

      ReplyDelete
    4. Is this the measured collection time?
      How does the memory allocation perform?

      ReplyDelete
    5. Thanks a lot for doing the load testing with Sgen and for being willing to test this new garbage collector in Mono Pablo!

      Miguel.

      ReplyDelete
    6. Pretty sweet. So a 15% performance hit for 50% of the memory usage. I should start running with this locally ;)

      ReplyDelete
    7. Hi "anonymous" :-)

      No, the time is total test time: it means, our server finishing the entire test, handling 85 clients performing actions like crazy!

      Yes, results are very good and sgen is getting really ready for production. Sounds cool.

      And overall, Mono/C# performance is really strong: I'll be sharing some results with you (I already shared them with Miguel a week ago or so) about how Mono/Plastic outperforms Git doing a simple add/ci cycle...

      ReplyDelete
    8. Pablo, perhaps you could update the post to better highlight the memory savings (this comment came from the guys on IRC)

      ReplyDelete