我使用Apache + Passenger(= Mod Rails),MySQL和Acts_As_Ferret(在服务器模式下)运行Ubuntu 8.04共享主机(VMWare)。在第一次请求时它太慢了。我在它上面做了很多REST操作,用户很少。
现在我想做一个全新的安装......
您推荐哪种设置(基于Ubuntu)适用于非常活泼的RoR服务器? (例如Ngnix,Thin,Mongrels或其他花哨的东西)
答案 0 :(得分:3)
Passenger在第一次请求时速度很慢,因为它处于空闲状态,并且它会关闭所有rails进程,因此第一个请求必须加载rails进程。您需要定期ping以避免空闲和关闭rails进程或将空闲超时设置为高值。
查看RailsPoolIdleTime
的文档答案 1 :(得分:2)
通过切换到Ubuntu 9.04甚至8.10
,你可以获得很大的速度提升答案 2 :(得分:2)
查看ec2onrails邮件列表,其中讨论了各种瘦/ nginx / passenger / apache备选方案和排列,以及根据一些不错的测试发布的一些硬数据。
你还可以找到一个很好的打包的形状为ec2onrails图像(google ec2onrails)的RoR / Ubuntu堆栈 - 它是用于在亚马逊EC2云上运行但是它有很多很棒的东西+ capistrano任务。目前它基于apache,但正在进行的版本正在考虑替代方案。没理由你不能为非EC2服务器使用相同的构建脚本。
如果您的问题只是初始请求,请尝试升级您的服务器,然后再考虑它(例如通过运行脚本来自动执行基本操作)。
哦,我应该添加 - 你确定问题是你的堆栈吗?更可能是你的代码。可能值得看看你的瓶颈在哪里以及你可以从缓存,改进的查询和索引中获得什么,尤其是在调整其他任何内容之前的memcached。
答案 3 :(得分:1)
我个人在我的ubuntu堆栈上使用nginx + passenger。并使用sphinx代替雪貂