3

我使用 Apache + Passenger(= Mod Rails)、MySQL 和 Acts_As_Ferret(在服务器模式下)运行 Ubuntu 8.04 共享主机(VMWare)。第一次请求太慢了。我对它做了很多 REST 操作,但用户很少。

现在我想做一个全新的安装......

对于真正快速的 RoR 服务器,您推荐哪种设置(基于 Ubuntu)?(例如 Ngnix、Thin、Mongrels 或其他花哨的东西)

4

4 回答 4

3

乘客在第一次请求时很慢,因为它处于空闲状态并且它关闭了所有 rails 进程,因此第一个请求必须加载 rails 进程。您需要定期 ping 以避免它空闲和关闭 rails 进程,或者将空闲超时设置为高值。

查看 RailsPoolIdleTime 的文档

于 2009-06-19T08:20:58.293 回答
2

好吧,您可以通过切换到 Ubuntu 9.04 甚至 8.10 来大幅提升速度

于 2009-06-18T16:54:21.997 回答
2

检查 ec2onrails 邮件列表,其中有很多关于各种瘦/nginx/passenger/apache 替代方案和排列的讨论,以及基于一些体面测试发布的一些硬数据。

您还会发现一个很好的打包 RoR/Ubuntu 堆栈,其形状为 ec2onrails 映像(google ec2onrails)——它用于在亚马逊 EC2 云上运行,但其中有很多好东西 + capistrano 任务。目前它基于 apache,但正在进行的版本正在寻找替代方案。没有理由您不能对非 EC2 服务器使用相同的构建脚本。

如果您的问题只是最初的请求,请在考虑将其上线之前尝试预热您的服务器(例如,通过运行脚本来自动执行基本操作)。

哦,我应该补充一下 - 你确定问题出在你的堆栈上吗?更有可能是您的代码。可能值得先看看瓶颈在哪里,以及从缓存、改进的查询和索引,尤其是在调整其他任何内容之前的 memcached 中可以得到什么。

于 2009-06-18T17:00:36.577 回答
1

我个人在我的 ubuntu 堆栈上使用 nginx+passenger。并使用狮身人面像代替雪貂

于 2009-06-18T17:17:05.963 回答