Ruby on rails 3 乘客繁殖问题

Ruby on rails 3 乘客繁殖问题,ruby-on-rails-3,passenger,Ruby On Rails 3,Passenger,我正在使用Rails 3RC应用程序,并首次使用Phusion Passenger。在第一次请求时启动应用程序大约需要30秒,下面是我的应用程序中每个ruby进程的典型内存消耗: PID VMSizePrivateName 18161 263.5 MB 75.4 MB机架:/rails\u apps/my\u app/current 这是典型的内存消耗吗?我的应用程序大约有11MB(如果不包括我的/公共资产,则小于4MB) 如果有一个用户,它在第一个请求之后运行良好,但是当我运行一些自定义压力测

我正在使用Rails 3RC应用程序,并首次使用Phusion Passenger。在第一次请求时启动应用程序大约需要30秒,下面是我的应用程序中每个ruby进程的典型内存消耗:

PID VMSizePrivateName
18161 263.5 MB 75.4 MB机架:/rails\u apps/my\u app/current

这是典型的内存消耗吗?我的应用程序大约有11MB(如果不包括我的/公共资产,则小于4MB)

如果有一个用户,它在第一个请求之后运行良好,但是当我运行一些自定义压力测试脚本时,以及当我使用搜索建议功能进行一系列快速ajax调用时,我遇到了问题(这是我所期望的,因为下一个请求在第一个请求完成之前完成)。我觉得奇怪的是。。服务器开始生成Ruby线程,这需要额外的30秒来加载,但在生成过程中,其他请求无法通过。为了再次检查,我在进程生成时在其他网络上使用浏览器进行了测试,以确保它不是本地机器特有的(就像从一个进程提供的所有请求)。这些浏览器请求必须等待所有新的生成完成

所以我的问题是。。这是乘客的典型行为吗?在其他请求通过之前等待产卵?通过查看文档,我认为在生成过程中,另一个请求将由空闲的ruby进程处理。以下是我正在使用的版本,以防你们注意到任何不稳定性。提前谢谢!我真的不想再回到杂种狗身上;-)

我的设置
四分之一片机架空间云(4GB RAM和1/4双四核)
CentOS 5.4
Rails 3.0RC
ruby 1.9.2dev(2010-05-31修订版28117)[x86_64-linux]
乘客2.2.15与杂种狗

nginx配置选项:
乘客人数最多为30人
乘客_开启#输入/位置块


我尝试了保守产卵,我看到了同样的行为。

乘客3已经退出了异步产卵。您甚至可以设置要保留的最小进程数

即使使用旧的行为,大多数高流量站点也不会遇到此问题,因为:

  • 生成第一个进程通常要快得多。对我来说,Rails应用程序通常需要5秒钟才能生成
  • 智能生成方法使生成其他进程的速度更快,通常只需要原始时间的10%
  • 拥有高流量网站的用户通常会将其池空闲时间设置为更高的值,这样进程就不会在白天关闭,而只会在晚上进行清理

  • 你的内存使用率有点高。我见过的大多数Rails应用程序都需要20-50MB的私有内存。

    我想这是乘客的预期行为。根据Passenger博客:“以前,当应用程序进程生成时,Phusion Passenger在进程生成完成之前无法处理HTTP请求,因为在生成过程中,Phusion Passenger持有应用程序池的锁。”我发现很难相信乘客可以在高流量的应用程序上使用。重新启动后,应用程序可能需要5分钟才能做出响应。除此之外,那位乘客看上去还不错。。期待v3。我想我现在得和杂种狗呆在一起了。红丽,谢谢你们的反应,谢谢你们在乘客问题上所做的工作!3号乘客看起来很迷人。。特别是新的产卵和零停机重新启动。有了这些新特性,我在问题中描述的问题就不是问题了。至于内存消耗和进程启动时间,在为同一个应用程序使用mongrel和thin之后,我认为这是Rails 3应用程序的一个问题,Rails 3应用程序有很多依赖项。看起来Rails 3启动时增加了很多开销(Bundler等)