So first I'd like to describe the setup we have to make sure you guys can give us some guidance possibly. I have inherited a Moodle installation that was originally run on a single server with a local data cache on the same box. There are about 100k accounts in the system and we add between 100 and 200 users per week. This client has a education program they sale which teaches people how to pass the USPS exam and get hired for the postal service. So here is the new setup on the system...
Two Identical Machines
QuadCore E5620 @ 2.4Ghz (per core)
24 Gigs of Ram
500 Gig Local Storage
Ubuntu 14.04 Trusty
Server version: Apache/2.4.7 (Ubuntu)
MySQL Galera (MariaDB Cluster with 3 Nodes)
Amazon AWS Barracude Load Balancer (Content Caching Enabled)
ALL HTTP and MySQL traffic are sent through this balancer as we have 3 nodes on the MySQL not just the two servers which handle Moodle HTTP.
So as of right now all traffic is routed to the load balancer, it then determines which server node is least busy and routes that student to the appropriate node to work. Also the Moodle install are using the load balancer to access MySQL database.
The two largest issues are are having are:
1) Moodle generates around 50,000 of these errors a day: "mysql connection unexpectedly terminated"
2) Quiz time loads very slowly because questions with images require Moodle to make DB request and generate image every single request and are not properly cached (or so it seems)
As far as we can tell the Moodle cache store is working as there are around 500MB of cache data generated on both servers and resetting it will regenerate the data. However we are using the default application cache which uses the moodle application data area. I did find something interesting in running the cache tester which seems to show alot of "misses" but I'm not entirely sure... see attached picture.
Overall the system loads are very very low in terms of resources and usage. The servers should be able to handle 4 times the current traffic load especially if caching is working properly.
Any Help / Pointers Welcome!