Moodle Performance with IIS in Windows server

Moodle Performance with IIS in Windows server

by Nitu Viga -
Number of replies: 7

Hi,

We have installed Moodle 3.7 and it is in Windows Server 2012 R2 with IIS web server. The database is MySQL 5.7. Our application runs with load balancer with two web servers, two app servers and one database server. The servers have 16 GB RAM and they have 4 cpu cores (the web servers are 8 cpu cores).

Other info:

  • Moodledata is stored in the shared data folder.
  • User count is over 10k.
  • Course count is over 1k.
  • session is stored in moodledata.

Our application runs fine for concurrent users upto 40, whereas the performance is going down once the user limit goes beyond 40. This application is being served to many users and we want this to be good for atleast upto 500 users.

Please suggest steps for improvement as we want the system to be stable and responsive for atleast 500 concurrent users.

Thank you.

Average of ratings: Useful (1)
In reply to Nitu Viga

Re: Moodle Performance with IIS in Windows server

by Alex Rowe -
Are you stuck using Windows Servers with IIS for this?

If you can move to a Linux OS and properly configure Web + DB, your specs "should" be able to sustain 500 concurrent users (maybe not 500 concurrent quiz users though).

Issues other users have noticed before are antivirus causing issues with Moodledata flowing on to sessions, temp, localcache etc and poor performance with IIS/PHP compared to Apache/NGINX with php-fpm.

If you have to stay with Windows, do you have any monitoring/logging/stats on where the bottleneck is?
Average of ratings: Useful (1)
In reply to Alex Rowe

Re: Moodle Performance with IIS in Windows server

by Visvanath Ratnaweera -
Picture of Particularly helpful Moodlers Picture of Translators
+1

40 simultaneous are far too low for the resources you've invested, 12 cores and 32 GB in total.

Information on where to start is linked to the forum documentation: https://moodle.org/mod/forum/view.php?id=596.
In reply to Visvanath Ratnaweera

Re: Moodle Performance with IIS in Windows server

by Nitu Viga -

I have tried the benchmark tool on one of my test site, the most time consuming part is writing files in temp folder.. Since we use load balancer and multiple nodes will use it and hence we use a shared location for the moodledata/temp folder. Can we use separate temp folder for each node? or is there any alternate way to resolve this

Moodle Benchmark in test site

In reply to Nitu Viga

Re: Moodle Performance with IIS in Windows server

by Visvanath Ratnaweera -
Picture of Particularly helpful Moodlers Picture of Translators
It is there in plain text: "4 Writing file performance (Write a file multiple times to check the writing speed of the Moodle temporary folder) current 30 sec acceptable 1.0 sec". I bet, if you forget the cluster and network file systems, instead run the whole thing in one server, you'll get ten times the current performance.
Average of ratings: Useful (1)
In reply to Nitu Viga

Re: Moodle Performance with IIS in Windows server

by Usman Asar -
Picture of Plugin developers Picture of Testers

Nitu, I couldn't understand your statement of 2 web servers and 2 application servers.

Your farm musnt have been configured correctly else one box with 8 cores and 32GB RAM could serve 500 users easily.

write your moodle version, PHP version and as well mention are you using ARR as load balancer or some external?

In reply to Nitu Viga

Re: Moodle Performance with IIS in Windows server

by Luis de Vasconcelos -
What do you mean by "two app servers"?

Are the two Windows servers running at the same location? Or are they in different locations, e.g. the one server is at the main school site and the second is at a "disaster recovery" location and the load balancer would failover to that server at that DR site if something happened at the main school site?
In reply to Nitu Viga

Re: Moodle Performance with IIS in Windows server

by Luis de Vasconcelos -
> Moodledata is stored in the shared data folder

Is that shared data folder some kind of NAS (network attached storage)? What are the details?