I am sure this question has been asked by other people. I saw many existing threads but I didn't get a clear answer.
We need to use Moodle for a big school network where they have a requirement of 15,000 concurrent users during the school time (for taking videos and attempting quiz) between 8 AM to 12 PM.
- What configuration would be required to support 15,000 users? I saw that 1 GB RAM is required to support 20 users. So in theory, probably 720 GB ram is need across multiple application servers. Would it be able to handle 15,000 concurrent Quiz simultaneously?
- We have assumed 5 web application servers each having 96 GB Ram, 48 cores, 1920 GB SSD, 8 TB networking etc. And 2 database servers each having 512 GB ram, 64 cores, 7200 GB SSD, 12 TB network. So a total of 450 GB ram for application servers and 1024 GB for DB Server. Is it a good estimate?
- Would we need any caching as we are going to use multiple app servers? How much cache (Redis) etc we should assume if needed?
- How to handle files across application servers? Do we need to use network storage or Amazon storage etc?
- Would one DB server be enough in addition to multiple application? I am afraid one DB server may not suffice. Can we use PostgreSQL for multiple database servers? How to configure multiple DB Servers (not as ready only replica for backup but as a cluster)
- We are thinking to use dedicated virtual machines from Linode.com for both DB and application server. Does anyone has any good/bad experience with Linode?
- Do we need to consider anything else (in addition to cache, load balancer, shared network storage) for this cluster deployment?