Tag Archives: performance

Comparing performance for Rails, Wicket, Grails, Play, Lift, JSP

What surprised me is that even though JSP/JSTL, Rails, Grails and Play use about the same MVC model, the differences in performance are big. 
Most posts about JRuby on Rails tell that it is faster than Ruby on Rails, however in this test, Ruby on Rails was clearly faster in both the rendering of products and concurrent-user test.Also, most posts about Rails tell that Webrick is slower than Mongrel, but in this test, Webrick was a bit faster.JRuby on Rails running on Trinidad does perform faster than other Rails configurations when tested with concurrent users.
Play-Scala using Netty NIO server is faster than Tomcat webserver. I wouldn’t expect the differences to be that big. It’s unclear whether these fast results are caused by Play-Scala being optimized for Netty, or that Netty is simply faster than Tomcat Note that the memory usage of Play-Scala under Netty is a lot higher than under Tomcat.

(Full Story: Comparing performance for Rails, Wicket, Grails, Play, Lift, JSP)

Serving small static files: which server to use ?

G-WAN seems again to perform a lot better than the other servers.  Nginx always performs slightly better than Lighttpd, while Apache Traffic server is very similar to Lighttpd in term of performance. Finally, Varnish Cache serves only half of the requests compared to all others. Surprisingly , there are quite few differences between the results with optimized settings and those with the default settings.
Regarding the resources used by each server, Nginx is the winner in term of memory usage, as the amount of memory does not increases with the number of concurrent clients. G-WAN requires 2 times less CPU than the other servers.
Again, keep in mind that this benchmark compares only the servers locally (no networking is involved), and therefore the results might be misleading.

(Full Story: Serving small static files: which server to use ?)

Pay Enough or Don’t Pay at All

In other words, performance-based pay improved performance. But offering a small financial incentive actually decreased performance compared to no financial incentives.

(Full Story: Pay Enough or Don’t Pay at All)

Tips for Tuning MySQL

  1. Innodb parameters – the 4 “Usual Suspects”
    1. innodb_buffer_pool_size
    2. innodb_log_buffer_siz
    3. einnodb_thread_concurrency
    4. innodb_flush_method
  2. Bonus #0 – flushing logs at transaction commit
  3. Bonus #1 – mysql logging
  4. Bonus #2 – linux ‘swappiness’
  5. Bonus #3 – my “Virtualization Rant”

(Full Story: Tips for Tuning MySQL)

Anatomy of a Crushing – Pinboard.in Blog

It was my experience that people approached an online purchase of six dollars with the same deliberation and thoughtfulness they might bring to bear when buying a new car. Prospective users would hand-wring for weeks on Twitter and send us closely-worded, punctilious lists of questions before creating an account.

(Full Story: Anatomy of a Crushing – Pinboard.in Blog)

Sample datasets for benchmarking and testing – MySQL Performance Blog

  1. The venerable sakila test database: small, fake database of movies.
  2. The employees test database: small, fake database of employees.
  3. The Wikipedia page-view statistics database: large, real website traffic data.
  4. The IMDB database: moderately large, real database of movies.
  5. The FlightStats database: flight on-time arrival data, easy to import into MySQL.
  6. The Bureau of Transportation Statistics: airline on-time data, downloadable in customizable ways.
  7. The airline on-time performance and causes of delays data from data.gov: ditto.
  8. The statistical review of world energy from British Petroleum: real data about our energy usage.
  9. The Amazon AWS Public Data Sets: a large variety of data such as the mapping of the Human Genome and the US Census data.
  10. The Weather Underground weather data: customize and download as CSV files.

(Full Story: Sample datasets for benchmarking and testing – MySQL Performance Blog)


Follow

Get every new post delivered to your Inbox.