我的客户端目前只有一台同时运行MySql和Apache的服务器,并且在一年中的忙碌时间,他们偶尔会看到Apache因为有如此多的连接而崩溃。
他们运行两个应用程序;他们忙碌的公共电子商务PHP网站及其(仅在工作时间内忙碌)内部订单处理类型应用程序,有15-20个并发用户。
我设法让他们增加预算足以获得两台服务器。我正在考虑: A)一台运行Apache / PHP的服务器,另一台服务器作为专用的MySQL服务器,或者 B)仅运行其公共网站,另一个运行MySQL和内部应用程序。
我看到A)的好处是Mysql my.cnf可以调整为使用该服务器的所有资源,但它的缺点是只运行一个Apache实例。
B)会在两台服务器上分散Apache的负载,但会限制MySQL在该服务器上的资源,即使在不使用内部应用程序的工作时间内也是如此。
我无法决定采用哪种方式,并感谢您提供的任何反馈。
答案 0 :(得分:1)
这两种方法都是错误的。
你这里有2个目标;可用性和性能(我正在考虑在这种情况下容量是性能的一个方面)。
为了提高可用性,您应该确保架构中没有单点故障。但是根据您提出的模型,您实际上会创建多个单点故障 - 因此您的2个服务器型号的可用性低于单个服务器。
从性能的角度来看,您希望在可用资源之间分配工作负载。您无法在服务器之间移动CPU和内存,但可以移动流量。
因此,最佳解决方案是在两台服务器上运行这两个应用程序。设置MySQL集群有点复杂,但是开箱即用的异步复制可能就足够了 - 节点配置为master-master(但是从2个应用程序的写入合理地进行了写入)。
可能有很大的空间来进一步增加系统的容量,但没有更多的细节(在这个论坛中比适当的更多,并且可能比你的客户更容易付钱),这很难建议。