Tim Bayer <tim.bayer@xxxxxxxxx> wrote: > Thanks for the quick reply, How would you recommend doing a scalability > test? Is it as simple as loading a ton of namespaces with lots of documents, > or is there a more accurate way to benchmark this? We should probably be clear about what you mean by "scalability." Are you asking how many pages DokuWiki can handle, how many users it can handle, or how many page requests per unit time it can handle? I normally think of the latter as a measure of scalability. The latter question is difficult to answer because there are so many factors: how many ports are available, how other servers are using resources, whether you're running PHP Accelerator, how Apache is configured, etc. I know next to nothing about configuring outside resources for maximum scalability. To run a scalability test for a given server configuration and box, I'd find a client tool that is designed specifically to do scalability tests, something that issues multiple requests to a remote server and dynamically determines the server's peak load. I'll see if I can find one that would work for us. In this case I'd just set up a dummy DokuWiki site having a single page of average page length and syntax complexity (whatever average is for your intended site). I'd also isolate the server and client boxes on their own network to factor out other external requests, and shut down any cron jobs that might run during the test. The client box should have more ports available to it than the server box, and be of comparable speed to the server box, in order to help eliminate the client as the limiting factor. I'd then run the scalability test on the client box, hitting just that one server page over and over. This simulates a server that receives far more requests to read pages than to update them, and one whose most frequently accessed pages manage to remain cached by the OS (or at least their source files remain so cached). Here's the information we'd like to see the client program produce: - Average page load time as a function of requests per unit time. - Maximum steady state page load time (above which load times become wildly unpredictable or pages may periodically fail to load) and corresponding requests per unit time - Requests per unit time at which load timeouts first occur (you might set a timeout that is average for browsers). - Requests per unit time at which connections are first denied. Alternatively, you can decide what your specific needs are and merely run tests at those limits. This doesn't tell you your peak capacity, but it does give you confidence that you can do what you want. It's pretty easy to design a test client that you can run by hand to figure out these numbers, but ideally you would automate the whole process so you can repeat the test multiple times in multiple configurations and have a benchmark suite that others can use for comparison. Actually, this project interests me and I'd be willing to help with it. I'd like to see a portable scalability test that we can use for benchmarking DokuWiki under various scenarios, including richer page sets. ~joe -- DokuWiki mailing list - more info at http://wiki.splitbrain.org/wiki:mailinglist