views:

228

answers:

3

I've noticed there are many PHP forum packages out there - http://en.wikipedia.org/wiki/Comparison%5Fof%5FInternet%5Fforum%5Fsoftware%5F%28PHP) . I specifically am looking for a forum package that scales well - from what I hear both Vbulletin and Simple Machines, two of the most popular forum packages, require substantially more horsepower than one would think.

After a few hours of Googlin' I have been unable to find any comparisons of forum performance, so I'm thinking of making one myself. The question is - where to begin? What would the best method be to load test different PHP forum packages?

A: 

From my mind VBulletin is one of the best light weighted forum package around.

BB is well know to break after few month of usage.

RageZ
+1  A: 

You could try something like what they have at http://loadimpact.com/ or write your own.

If you have the ability to deploy some simple scripts that just cURL a bunch of pages, you could pretty easily write something on your own.

Things to keep in mind:

  • Your forums will be database driven. If your load test simply spams read on the same page, the query (queries) will get cached and will execute faster than they might on a large forum where users are frequently executing more queries than the query cache can hold. Memcached presents the same problem for your load test.

  • Make sure you test posts as well as views

  • You can pretty easily determine how many concurrent connections your setup can support by running your cURL script(s) in parallel. This is probably going to be limited by your database configuration (or even webserver) and not the forum software... but it's possible some forum packages use multiple db connections per page view instead of sharing one.

  • Measure your response times with 5 concurrent connections, 10, 50, 100, 1000... up to however many you really care about supporting. You'll not only decide on the best package, but also determine at what point you need to consider scaling out your hardware.

Good luck! And please share your findings somewhere :)

jfkiley
+1  A: 

I use and recommend httperf and Tsung.

httperf simplifies running multiple concurrent requests against a URL.

Tsung lets you script a user flow through the application.

Toby Hede