繁体   English   中英

Phusion乘客生成问题

[英]Phusion Passenger spawning problems

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

PID VMSize专用名称
18161 263.5 MB 75.4 MB机架:/ rails_apps / my_app / current

那是典型的内存消耗吗? 我的应用程序约为11MB(如果不包括我的/公共资产,则为<4MB)。

如果有一个用户,它会在第一个请求后正常运行,但是当我运行一些自定义压力测试脚本时以及在使用我的搜索建议功能时,都会遇到很多问题,该功能会进行大量快速的ajax调用(这是我期望的) ,因为下一个请求是在第一个请求完成之前到达的。 我发现这很奇怪。服务器开始生成Ruby线程,这需要花费额外的30秒来加载,但是在生成过程中没有其他请求可以通过。 为了仔细检查,我在进程生成时使用其他网络上的浏览器进行了测试,以确保它不是我的本地计算机所特有的(例如,从一个进程处理所有请求)。 这些浏览器请求必须等待,直到所有新的生成都完成。

所以我的问题是..这是乘客的典型行为吗? 等待产卵,然后再通过其他任何请求? 通过查看文档,我认为在产卵期间,其他请求将由空闲的红宝石进程处理。 这是我使用的版本,以防你们知道任何不兼容性。 提前致谢! 我真的不想回到Mongrel ;-)

我的设置
四分之一片Rackspace Cloud(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配置选项:
passenger_max_pool_size 30;
passenger_enabled开启; #in /位置块。

我尝试了保守的生成,并且看到了相同的行为。

乘客3因异步生成而退出。 您甚至可以设置最少数量的进程。

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

  1. 产生第一个过程通常更快。 对我来说,Rails应用程序通常需要5秒钟才能生成。
  2. 智能产卵方法可以更快地产卵其他进程,通常只需要原始时间的10%。
  3. 具有高流量网站的人们通常将其池空闲时间设置为较高的值,以使进程在白天不会关闭,而只会在晚上进行清理。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM