RkBlog

Hardware, programming and astronomy tutorials and reviews.

CMS and Forum scripts benchmark

Testing PHP scripts with httperf

I've used httperf to test some commonly used PHP scripts (CMS, Forums) under moderate load. I've measured httperf test duration time where the test was 5 requests per each of 20 connections.

Hardware and Software

Acer Aspire 5002 WLMi, 512MB DDR, AMD Turion64 ML-30. Gentoo Linux amd64, cherokee 0.5.6 server, php-5.2.0 with suhosin, MySQL 5.0.32 (MySQLi used if possible). I've used default installations and configs for tested scripts with few exceptions where I had to add sample data (3-5 news) and set Xanthia theme on Postnuke 0.7.

Results

Test Duration Time - 20 connections with 5 requests per connection
Script Test Duration Time (s)
Django Application 2,3
punBB 1.2.14 2,93
PHP-Fusion 6.01.6 3,01
txtBB 1.3.rc3 3,46
Guppy 4.5.17 3,68
phpBB 2.0.22 3,97
4images 1.7.4 4,46
e107 0.7.7 4,70
SMF 1.1.1 4,93
Coppermine Gallery 1.4.10 5,12
phpBB by Przemo 1.12.5 4,93
Joomla 1.0.12 5,98
Wordpress 2.1 6,00
Drupal 5.0 6,05
Mambo 4.6.1 6,44
Postnuke 0.764 7,57
Postnuke 0.800 MS 2 7,71

Where Django Application is www.cms.rk.edu.pl on localhost using Django development server (rather slower) with PostgreSQL 8.1.5. Scripts that execute faster used more CPU time (49% punBB, 24.3% Postnuke 7). Bigger CPU usage was result of bigger connections/second value (6.4 conns/sek for punBB and 2.7 conns/sek. for Postnuke 7).
htbench_1


Tests and Scalability

This and similar tests does not define script scalability. Wordpress or Drupal didn't won but those scripts are used on many sites with very high load. I've tested scripts without any real data. Page generation time of "empty" scripts is proportional to php code size. Two main scalability limiters are SQL queries and templates systems not the size of php code.
Postnuke 0.764 has a bug in news pager on the main page - the query that is used to count the news doesn't use MySQL count but gets all data of every news and then counts them in PHP which caused problems for sites with more than about 1000 news (hosting companies complained that customers Postnuke installations use too much resources and generate big load between MySQL and http server). This problem was reported on post-nuke.pl long time ago but AFAIK nobody submitted it to the postnuke bugzilla :omg:
Test Duration Time - 20 connections with 20 requests per connection, 3000 news
Script Test Duration Time (s)
PostNuke 8.5
Postnuke + Pager 10.37
RkBlog

PHP Tutorials and Scripts, 14 July 2008,

Comment article