2012-02-21 148 views
0

我正处于为我们的生产系统(Moodle)规划虚拟化环境的早期阶段。该层是相对简单:规划虚拟化环境

网 - Apache 2.2的 数据库 - MySQL的5 PHP 5.2

我的问题是,什么是分布在上面的层之间phycsical服务器普遍接受的方法呢?在这种情况下,我们计划拥有2台物理服务器。我应该将我的Web服务器集群保留在另一个物理服务器和数据库集群上吗?或者,在两台服务器上复制一个完整的堆栈,以防万一出现故障?任何对此的见解对我来说都是很有帮助的。

谢谢, Cathal。

回答

0

我们使用单独的(虚拟)服务器,但是每个服务器都维护单独的堆栈,这是因为开销很小,并且如果我们想要向上/向下扩展则允许灵活性。然而,这不是回退,因为如果一台服务器如此破碎以至于无法访问网络,那么您可能无法将数据从第二台服务器上取下,以便它成为有用的替代品。使用适当的备份进行回退,并定期从中恢复。

Moodle通常在PHP端而不是在数据库端,我们大致看到3.5:1 PHP:当MySQL在不同的机器上时,它们会被加载。考虑到这一点,您需要考虑一台服务器的最大容量是多少:如果机器之间没有网络开销,那么您将获得最佳性能,因此越大越好。如果你不能用一个做,那么制作2个VMS,一个大一点用于PHP,另一个小一点用于MySQL,这是最好的选择,但是要根据你的特定设置(使用Apache JMeter)进行负载差异基准测试。我们有两个4-CPU/8GB的虚拟机,一个用于PHP,另一个用于MySQL(尽管DB很少超过30%的CPU),我们最大的安装涉及70,000个用户左右。这允许通过Apache约400个并发连接。但是,我们正在使用大型虚拟机场,并且可以容易地在2到16个CPU之间上下缩放,因此如果需要灵活性,您可能希望考虑一台怪兽机器。

有关Moodle性能的更多信息,请查看here,特别是在'可伸缩性'下。