Intent: Characterize Performance of Drupal on Solaris 10 vs Linux, without tuning (i.e., 'out of the box' experience)
| Hardware Used | Sun Fire X2100 server; 1x2.2GHz dual-core Opteron; 4GB memory |
|---|---|
| Drupal Version | Drupal 5.3 |
| Drupal Database | 2000 users, 5000 nodes, 10000 comments, 250 vocabulary items; 15 vocabularies (generated with Drupal 'devel/generator' module) |
| Alternative PHP Cache Enabled | PECL APC 3.0.15 |
| Load Generator | Faban 'fhb' 0.9 (check it out!) |
| Nature of Workload | Concurrent hits against front page (not logged in) |
| Solaris AMP | Linux AMP | |
|---|---|---|
| Operating System | Solaris 10u4 (within non-global zone) |
SLES 10.1 |
| AMP Stack | Coolstack 1.2: Apache 2.2.6 MySQL 5.0.45 (64-bit) PHP 5.2.4 |
Bundled AMP: Apache 2.2.3 MySQL 5.0.45 (64-bit) (note: see below) PHP 5.1.2 |
| Max Ops/sec | 24.6 @ 2 users | 10.5 @ 2 users |
| Max Users with <1 sec response time | 24 users | 10 users |
| Max Users with no '503' errors' | 94 users | 11 users |
| Max User/System CPU % | 77%/23% | 84%/15% |
| Max %busy disk usage | 7% | 1% |


Notes
- All components, including load generator, reside on the same server (or Zone); in the future, load could be generated from a separate machine
- MySQL version updated on SLES for 'apples-to-apples' comparison; version bundled with SLES 10.1 is the much older 5.0.26, which yielded lower performance
- In both cases, CPU quickly maxed out, with MySQL server the primary culprit
- Disk usage never rose over 10% busy
Discussion
It appears that, while these two configurations use resources in a similar manner, the performance optimizations built into Solaris and Coolstack wring more Drupal throughput out of SAMP. That said, the authors want to state that these results should be considered within the context of the workload itself, i.e., non-logged-in hits to the main page of this Drupal site. While this is probably the most common access to a Drupal site, we suspect that performance under a workload that hits random pages by logged-in users will differ in some ways.
Overall, however, it is clear that 'out of the box' Drupal performance on SAMP bests that of LAMP on identical hardware:
- Max throughput: 2X difference
- Load which exceeds 1 second response time: 2X difference
- Load which causes server to throw 'Service Unavailable' errors: 8X difference
This does not mean that performance tuning up and down the software stack would not change these results - it would. But for those who have asked us 'how does Drupal performance vary between Solaris and Linux', this provides the best initial (and, we hope, impartial) indication
Future testing planned:
- Test with logged-in users, vary users and pages hit
- Test against Drupal 6.X
- Characterize performance with MySQL vs Postgres
- Characterize performance on Quercus/Glassfish vs PHP/Apache
Future tuning planned
- Database tuning
- PHP tuning
- Scaling via clustering, and via small servers for subcomponents (MySQL, PHP/Apache)