Thanks for your reply.
I am using a Raspberry Pi 3 B+. The power supply I'm using is only 2.5 amps (from Adafruit - https://www.adafruit.com/product/1995).
My classes are between 20 and 30 students. As I start using the Moodlebox for more and more assignments, I'm seeing things take longer. My quizzes are typically 1 page per question and mostly text - just a few pictures. Students were logging in and taking the quiz within minutes of each other, which is when we noticed the worst performance. I have WiFi and Bluetooth turned off.
I did some performance testing. Using the Vanilla Moodle 2.5.1 image, I ran the perspective.php script for Moodle 2.0 I found here: https://moodle.org/mod/forum/discuss.php?d=57028#p772267
In one second these servers can do...
Moodlebox (Raspberry Pi 3 B+):
2,458,000 function calls
30,200 16KB files read from disk (cache)
4300 regular expression replaces over 1KB of text
200 16KB files written to disk (cache)
4380 get_record calls on the course table
170 insert_record calls on the course table
200 update_record calls on the course table
1.90 seconds to delete 170 entries
Old Dell Optiplex 380 that's probably 10 years old with 4 MB of ram.
17,217,000 function calls
64,000 16KB files read from disk (cache)
24,300 regular expression replaces over 1KB of text
4000 16KB files written to disk (cache)
15,700 get_record calls on the course table
20 insert_record calls on the course table
30 update_record calls on the course table
1.23 seconds to delete 20 entries
f1micro Google Compute Engine (A shared-core machine type having 0.2 virtual CPUs. A virtual CPU is a single hardware hyperthread on an Intel Xeon E5. I selected the .6 GB of RAM. I chose these options as they are free even after the end of the trial period.)
25,855,000 function calls
105,400 16KB files read from disk (cache)
35,200 regular expression replaces over 1KB of text
1500 16KB files written to disk (cache)
16,740 get_record calls on the course table
580 insert_record calls on the course table
470 update_record calls on the course table
1.38 seconds to delete 580 entries
I setup each server with Nginx and MariaDB. I tried to set them up as similar to the Moodlebox as possible (ran the exact same code on the same database, etc.
As you can see, the f1micro beat the Raspberry Pi hands down in every category. Looks like it has the ability to handle at least 40 students concurrently if the Pi can handle 20. What surprises me is that the Pi has more ram and processing power. What is causing this disparity? Is there something I'm missing? Unless you can point out a glaring flaw in my logic, I think I'm going to run with the Google Compute Engine for my classroom and save using the Pi for when I teach in China.