我正处于为我们的生产系统(Moodle)规划虚拟化环境的早期阶段。这些层相对简单:
web -Apache2.2数据库- MySQL 5PHP5.2
我的问题是,在物理服务器之间分布上述层的普遍接受的方法是什么?在这种情况下,我们计划拥有2台物理服务器。我是否应该将web服务器集群放在一台物理服务器上,而将数据库集群放在另一台物理服务器上?或者,在两台服务器上复制一个完整的堆栈,以防其中一台失败?对此的任何见解都将对我有很大的帮助。
谢谢,凯萨尔。
发布于 2012-02-22 21:35:14
我们使用单独的(虚拟)服务器,但确实在每个服务器上维护单独的堆栈,这只是因为管理费用很小,并且如果我们想要扩展/缩减,它允许灵活性。然而,这并不是为了后备,因为如果一台服务器坏了,它不能通过web访问,你可能无法从它那里获取数据并将其放到第二台服务器上,以便它成为有用的替代品。使用适当的备份进行回退,并定期练习从它们进行恢复。
Moodle通常在PHP端阻塞,而不是在DB端阻塞,当它们在不同的机器上时,我们看到大约3.5:1的PHP:MySQL CPU负载。考虑到这一点,您需要考虑一台服务器的最大容量是多少:如果机器之间根本没有网络开销,那么您将获得最佳性能,因此越大越好。如果您不能使用一个虚拟机,那么创建两个虚拟机,一个大一点,一个小一点,是最好的选择,但是一定要针对您的特定设置对负载下的差异进行基准测试(使用Apache JMeter实现)。
我们最大的安装涉及大约70,000个用户,我们有两个4cpu/8gbVM,一个用于PHP,另一个用于MySQL (尽管DB很少超过30%的CPU)。这允许通过Apache进行大约400个并发连接。但是,我们使用的是一个大型虚拟机群,可以轻松地在2到16个CPU之间上下扩展,因此,如果您希望获得灵活性,可以考虑使用一台超级计算机。
有关Moodle性能的更多信息,请查看here,特别是在“可伸缩性”部分。
https://stackoverflow.com/questions/9378681
复制相似问题