扩展服务器到Ruby on Rails应用程序的第一步

我正在双核心AMD Athlon 4450e服务器上运行RoR Web应用程序(带有8GB RAM和Ubuntu)。

它没有问题,每分钟可以达到320个dynamic请求,它还处理所有的资源,包括提供一些更大的video文件。

我在主机上运行Apache w / Passenger和MySQL。

性能还是相当一致的,但是我看到负载平均值在负载较高的时段开始超过1,CPU负载达到40或50%。

我可以买一台额外的电脑和一个四核心系统,8GB内存符合我的预算。

我应该把目前的盒子变成数据库服务器,并把它作为一个Web服务器的前面的四核?

将四核作为数据库服务器和Web服务器运行并保持现有双核运行在另一个Web服务器旁边会更好吗?

任何其他的服务器布局,我应该考虑?

下面是负载下服务器的快照:

服务器负载http://img.skitch.com/20100208-jhk11btcb43yg4mhd75ecinqqr.png

谢谢,

-Tim

它没有坏,不修复它。

作为通用的下一步的build议,你可以/应该把你的静态文件分割成nginx或者cdn,然后花一些时间分析你的mysql查询来查看索引或者轻微的调整。

使用双核机器运行轨道,您应该可以轻松维持2 – 3的平均负载,而不会对用户造成任何影响。

首先,您需要找出导致CPU负载的原因 – 数据库或apache / RoR应用程序。

我build议,你把四核机作为数据库服务器,并把双核作为networking服务器。 如果您在Web服务器上看到更多的麻烦,您可以随时添加另一个负载均衡。

但是,再次,检查,看看目前的负载是什么。

我将在新计算机上设置所有的东西,因为升级非常重要,并使用旧的testing服务器。

如果你长大了新的,你也可以在旧服务器上设置RoR应用程序,并使用nginx进行负载平衡。 Mysql复制也可能是一个选项,至less是备份值。