Olio 0.2 released
Posted January 13, 2010on:
Olio is a web2.0 application that can be used for performance testing of various web infrastructure technologies. The cool thing about Olio is that the same application (a social calendar similar to yahoo.com/upcoming) is implemented in PHP, Rails and Java. Thus it can be used for comparison of different stacks (to answer questions like “Should I move my PHP app to Rails? “) or compare different software infrstructure components (apache vs nginx say) or compare different hardware. Olio is currently an apache incubator project. You can get an overview of Olio from this presentation.
Release 0.2 was a lot of work. I was the release manager for both Olio releases done so far. 0.2 went a lot more smoothly (anyone who has done an Apache release knows all the criteria and rules involved !)
The major features of this release are :
- First release of the Java version. The Java code has been in the svn repository for some time now and has been actively used by VMWare and others. Understandably, it was fairly buggy and a lot of fixes went into creating this release.
- Re-organization of the file store. Previously, the entire unstructured file store (all the photos and documents) were in a single directory. This caused severe navigation problems at loads of several thousand concurrent users as the number of files grew very large. The file store now has an heirarchical directory structure.
- The load generator (driver) has been upgraded to use HttpClient 3.0.1. This eliminates some of the complexity in the driver when dealing with multi-part posts, re-directs etc.
- The cycle times for the AddEvent and AddPerson operations have been adjusted to result in passing runs in most cases. Previously, the minimum cycle time was defined as 0 which caused problems when the 90% response time was several seconds. The cycle time curve would keep shifting to the right making it impossible to meet the requirements. This is a topic for a separate article, so more on it later.
- Olio simulates browser caches being cleared when new users first login by re-fetching all static files 40% of the time. When the cache was alive, it did not issue any such requests. It turns out that for older apps that do not use the Cache-control directive, the browser does issue a small request for every static file with the If-modified-since header. To better reflect these sites, Olio 0.2 now issues these if-modified-since requests. This results in substantially more traffic to the server.
Because of these major changes, any performance results obtained using Olio 0.1 should not be compared with those from Olio 0.2.
If you are interested in a realistic web workload to test your LAMP stack, Rails stack or Java EE stack, please do consider downloading Olio.