views:

28

answers:

1

I recently inherited a simple PHP application built on Piwi (http://www.piwiframework.de/default.html). Has anyone deployed this framework in a high-availability high-concurrency scenario? I was thinking about 5000 concurrent users (at least) with a 2-3 hour burst totaling about 15-50k unique sessions.

I'm not asking if php can be scaled, I know I will need to handle the code, I just want to make sure that the Piwi controllers/database abstractions don't have any known issues.

+1  A: 

I'm one of the developers of Piwi, so I hope I can give you some hints:

Till now no performance issues have been reported to our bugtracker (http://code.google.com/p/piwi/issues/list).

I did not use Piwi for webapplications with that many concurrent users, but I did some performance tests.

Here my test setup and the results: Apache was used as a webserver. The Tool JMeter 2.3.2 was used to perform HTTP-requests. A single thread was used to run the same request in a loop (only HTML was retrieved from the server, no images and css files were requested). I measured how many requests the server could handle per second, depending on the contents of the page. Every measure was repeated three times (normal, with caching enabled, as static HTML file).

Content               | normal | with Cache | static File 
Only text             |   11,9 |       12,7 |        64,7
Generator             |    9,0 |       13,0 |        64,2 
Generator with images |    8,8 |       12,7 |        64,7
Forms                 |   10,9 |       10,9 |        64,4

Interpretation:

  • Caching improves performance up to 44%. Even static contents are delivered 7% faster. This is due to the fact that only one XSLT transformation has to be performed (instead of two).
  • Generators and database access does not influence the overall performance very much.

I did not measure other frameworks so I can't make no statement about the general performance.

Did you deploy the website in the meantime? I would like to hear about your experience.

Daniel