Tuesday, April 30, 2013

Performance enhancements for Ruby-based stacks in BitNami

We have been steadily working on releasing new applications for our BitNami Library. We have also been investigating new configurations and optimizations to improve the performance of existing ones.

As part of this work we have just released new versions of Ruby Stack, DiscourseRedmine or GitLab with several performance improvements, detailed below:

We added the popular Falcon patches by default, which also include the Greg Price's patch for speedup. These fixes significantly reduce application startup time for Rails-based apps.

To test this improvement, we tested Discourse in an Ubuntu 64 bit small instance in Amazon EC2:

$ time -p bin/rake environment RAILS_ENV=production

Ruby 1.9.3-p392:  69.60 secs
Ruby 1.0.3-p392 + Falcon patches: 22.47 secs

We are also adding specific settings for improving per-application performance. Discourse developers have noticed slowdowns related to Garbage Collection. We configured the BitNami Discourse stack to increase the GC limit to 90 MBs.

We have released a new version of Ruby for Windows that ships similar performance patches. The Code Shop group already implemented these patches for Windows and using this new Ruby version, Redmine starts almost 30% faster for this platform.

In addition to that, we updated the Bundler gem to the latest 3.1.5 version for all the Ruby-based stacks, which is much faster than the previous versions. Now you can run "bundle update" in a few seconds.

If you have additional suggestions on how we can improve the performance of BitNami apps, please let us know!