Skip to content

Testing and Performance Metrics

sethbrayman edited this page Jul 5, 2012 · 12 revisions

Preliminary Performance Metrics

Note: These tests should not be taken as the absolute truth at this point but are some good preliminary numbers to look over. This benchmark is the Hibernate and MongoDB data adapters.

Something to keep in mind: This test used the default settings for the databases (H2, MySQL, Postgresql, andMongoDB), Tomcat 7, and Atom Hopper version 0.9.5 (for Hibernate) and Atom Hopper version 1.1.0 for MongoDB. A production deployment of Atom Hopper should be using actual servers and tuned read/write databases in addition to a caching layer.

The specs of the testing hardware were as follows:

  • MacBook Pro (2011)
  • 2.2 GHz Intel Core i7
  • 4 GB 1333 MHz DDR3
  • L2 Cache per Core: 256 KB
  • L3 Cache: 6 MB
  • 7200 RPM Hard Drive

The POST tests (inserts) used a 4K payload.

Database POST (Requests Per Second) GET (Requests Per Second)
Postgresql 1341.0 13.6
MySQL 746.0 40.3
H2 654.0 6.7 - 50.1 *
MongoDB 5313.6 10627.2

*H2, MySQL and Postgres performance greatly varied on the size of the database: the larger the database grew, the worse performance became. With 5+ million rows, you should expect some read delays; with 30+ million rows, a read could take up to 6 seconds to return the feed. Write speeds seemed to be mostly unaffected as the database grew in size.

Note: The Postgres and MySQL tests were run without any tweaks or modification to the base install of each database. We've done tweaks to our Postgres servers and have seen much better numbers than above.

Each test was conducted with JMeter.