我在带有 8GB RAM 和 Ubuntu 的双核 AMD Athlon 4450e 服务器上运行 RoR Web 应用程序。
它运行良好,每分钟收到高达 320 个动态请求的峰值,它还处理所有资产,包括提供一些更大的视频文件。
我有 Apache w/Passenger 和 MySQL 在主机上运行。
性能仍然相当稳定,但我看到负载平均值在较高负载期间开始攀升至 1 以上,并且 CPU 负载上升到 40% 或 50% 大关。
我可以负担得起一台额外的计算机和一个带有 8GB RAM 的四核系统符合我的预算。
我应该把当前的盒子变成数据库服务器,然后把四核放在它前面作为 Web 服务器吗?
让四核同时作为数据库服务器和 Web 服务器运行,并将现有的双核作为另一台 Web 服务器在其旁边运行,是否会更好?
我应该考虑的任何其他服务器布局?
这是负载下的服务器的快照:
服务器负载 http://img.skitch.com/20100208-jhk11btcb43yg4mhd75ecinqqr.png
谢谢,
-蒂姆
它没有坏,不要修理它。
作为一般的后续步骤建议,您可以/应该将静态文件拆分到 nginx 或 cdn,然后花一些时间分析您的 mysql 查询以查看索引或轻微调整可以帮助的地方。
使用双核机器运行轨道,您应该很容易能够维持 2 - 3 的平均负载,而不会对用户产生任何影响。
首先,您需要找出导致 CPU 负载的原因 - db 或 apache/RoR 应用程序。
我建议您将四核机器作为数据库服务器,将双核机器作为 Web 服务器。如果您发现 Web 服务器出现更多问题,您可以随时添加另一个具有负载平衡功能的服务器。
但同样,首先检查并查看当前负载是多少。
我会在新计算机上设置所有内容,因为升级非常重要,并将旧计算机用作测试服务器。
如果你也超过了新的,你可以在旧服务器上设置 RoR 应用程序并使用 nginx 进行负载平衡。Mysql 复制也可能是一种选择,至少对于备份值而言。