Мы используем отдельные (виртуальные) серверы, но поддерживаем отдельные стеки на каждом из них просто потому, что накладные расходы малы, и это обеспечивает гибкость, если мы хотим увеличить / уменьшить. Однако это не для запасного варианта, потому что если один сервер настолько сломан, что не доступен через Интернет, вы, вероятно, не сможете получить данные с него и на второй сервер, чтобы он был полезной заменой. Используйте резервные копии для восстановления и регулярно восстанавливайте их.
Moodle обычно блокирует на стороне PHP, а не на стороне БД, и мы видим примерно 3,5: 1 PHP: загрузка ЦП MySQL, когда они находятся на разных машинах. Имея это в виду, вы должны учитывать, какова максимальная емкость одного сервера: вы получите лучшую производительность, если у вас вообще нет перегрузок в сети между машинами, поэтому чем больше, тем лучше. Если вы не можете сделать это с одним, тогда лучше сделать 2 VMS, одну большую для PHP и одну меньшую для MySQL, но сравните различия под нагрузкой для вашей конкретной настройки (используйте Apache JMeter для этого).
В наших самых крупных инсталляциях участвуют около 70 000 пользователей или около того, и у нас есть две виртуальные машины по 4 ЦП / 8 ГБ, одна для PHP и одна для MySQL (хотя одна БД редко превышает 30% ЦП). Это позволяет около 400 одновременных подключений через Apache. Однако мы используем большую ферму виртуальных машин и можем легко увеличивать и уменьшать от 2 до 16 процессоров, поэтому вы можете рассмотреть возможность использования одной машины-монстра, если вам нужна гибкость.
Для получения дополнительной информации о производительности Moodle, посмотрите здесь , особенно в разделе «масштабируемость».