From what I have read here: https://moodle.org/mod/forum/discuss.php?d=316736 about the 50MB RAM / user.
So if I have more CPU / RAM, I should be able to support more users. These are the system we got:
Dev. Servers
Software: Moodle 2.9 on Redhat 6.4
Hardware: 1 CPU 2 core , 4GB Memory , 100GB HDD
Software: Windows Server 2012 with MSSQL Server 2012
Hardware: 1 CPU 2 core, 4GB Memory , 100GB HDD
Staging Servers
Software: Moodle 2.9 on Redhat 6.4
Hardware: 1 CPU 4 core, 8GB Memory , 100GB HDD
Database:
Software: Windows Server 2012 with MSSQL Server 2012
Hardware: 1 CPU 4 core, 8GB Memory , 100GB HDD
As you can see, our Staging environment is more powerful than our Dev. environment; 2x in CPU & RAM
So our staging servers should be able to handle around 160 users (concurrent?), and 80 users for dev. environment.
However after load testing, both of our system can only handle around 50 concurrent users. (ramp-up time = 1 sec.)
100 users with 200 secs ramp-up time; 250 users with 600 secs ramp-up time with no errors.
Since our dev. servers can handle 50 concurrent users, our staging servers should be able to handle 100 concurrent users. But no, it still can only handle 50 concurrent users.
The test scenario is quite simple: login > entering course > entering quiz > starting a new quiz (5 multiple choice questions) > pressing next > trying to submit the quiz > logout
If we load testing more than 50, the errors will begin to appear in various steps & with various user accounts; mostly, "Error in reading to database" & "Error in writing to database". Also some "Internal Server Errors" and "Service Unavailable".
We wonder why the CPU / RAM has no effects on the amount of concurrent users at all? Or we have to configure something?