To be specific, if you are loading Moodle, look at the optimization at – https://docs.moodle.org/37/en/Performance_recommendations
On our server, we use a SSD with the Inetinfop\Parameters set to 2. You need to run the performance under plugins at 100,000 request. So go to site administration and see how you do.
https://yourdomain/cache/testperformance.php and request 100,000.
Make sure you set all of the settings under FastCGI to 10,000 or their max of 1000.
Opcache should be enabled in the php.ini file.
Optimize the my.ini file for Windows Server.
https://www.percona.com/blog/2016/10/12/mysql-5-7-performance-tuning-immediately-after-installation/
IIS performance (https://docs.moodle.org/37/en/Performance_recommendations)
All alter this location in the registry:
HKLM\SYSTEM\CurrentControlSet\Services\Inetinfo\Parameters\
- The equivalent to KeepAliveTimeout is ListenBackLog (IIS – registry location is HKLM\ SYSTEM\ CurrentControlSet\ Services\ Inetinfo\ Parameters). Set this to between 2 to 5.
- Change the MemCacheSize value to adjust the amount of memory (Mb) that IIS will use for its file cache (50% of available memory by default).
- Change the MaxCachedFileSize to adjust the maximum size of a file cached in the file cache in bytes. Default is 262,144 (256K).
- Create a new DWORD called ObjectCacheTTL to change the length of time (in milliseconds) that objects in the cache are held in memory. Default is 30,000 milliseconds (30 seconds).