Performance FAQ
How do you define "concurrent users"?
As has been repeatedly stressed in the forum [0], the load on the server depends primarily on the number of concurrent users, not on the total number of users neither the number of users logged-in at a given time. In this context, the concurrent users are those for whom the server actively doing something [1]. It may by processing a webpage written in PHP, processing a database querry or simply transfering a file.
[0] Using Moodle Hardware and Performance forum
[1] http://en.wikipedia.org/wiki/Concurrency_(computer_science)
How do I benchmark a Moodle-site?
You can ofcourse benchmark each component of the software stack, starting from the operating system upto the database https://docs.moodle.org/en/Performance#Obtain_a_baseline_benchmark . But there is no easy formula to deduct the maximum number of concurrent users from those data.
There is a PHP-script [2] circulating amoung the Moodle-community which calculates a ballpark figure. Take the current version from 1. March 2007 posted here [3]. Please note running this script on a production server may have side-effects, you are strongly adviced to run it on a test-site.
[2] http://moodle.org/mod/forum/discuss.php?d=57028
[3] http://moodle.org/mod/forum/discuss.php?d=57028#p296907
What are PHP-accelerators?
For the definition see Wikipedia [4]. Read the Performance documentation [5] for possible software.
[4] http://en.wikipedia.org/wiki/PHP_accelerator
[5] https://docs.moodle.org/en/Performance#PHP_performance
How do I cluster Moodle?
How do I replicate Moodle?
My site is very slow, what should I do?
First find out "how slow". (The theme-trick here).
The next question is, whether the performance is normal or something malfunctions. There are many things which can malfunction:
- hardware
- crashed filesystems, specially network filesystems
- memory leaks or other crashes in the system
- bug in Moodle
- corrupted database
Or your performance could be "normal" under the given circumstances:
- Is it a root-server, dedicated server, virtual (shared) server
- How much RAM, processing power do you have?
- What is the software stack you use? (Unix or Windows, Apache or IIS, MySQL, PostgreSQL or SQL-Server, ...?)
- how many concurrent users slows the system down
- what modules/activities they use? Check Performance of different Moodle modules
- is your networt setup property? DNS, firewalls. Also check local firewalls and other local security tools?
Obtain a baseline benchmark and compare it with the published figures.
What hardware is needed for N users?
A moodle setup for 10K simultaneous users