我目前正面临Passenger(4.0.18)与简单的Rails 4.0.0应用程序相结合的问题.问题是,在启动apache之后,第一个请求非常慢(通常为30.x秒).以下请求非常快,但如果应用程序空闲20秒以上,则会再次发生相同的情况.
现在,这个问题一般已经在这里讨论了几次,当然我已经调整了apache配置:
PassengerSpawnMethod smart
PassengerPoolIdleTime 1000
RailsAppSpawnerIdleTime 0
PassengerMaxRequests 1000
PassengerMaxPreloaderIdleTime 0
Run Code Online (Sandbox Code Playgroud)
但这根本没有帮助.如果我检查乘客状态,它会告诉我:
Version : 4.0.18
Date : 2014-01-31 13:06:59 +0100
Instance: 20601
----------- General information -----------
Max pool size : 6
Processes : 1
Requests in top-level queue : 0
Run Code Online (Sandbox Code Playgroud)
有趣的是,当我在做请求时对乘客状态进行"观察"时,这里没有任何改变.(特别是请求行).
我已经摆弄了tcpdump,所有请求都及时到达,因此没有可见的网络延迟.我还启用了apache扩展日志记录(添加了请求时间) - 这非常有趣,假设正常请求大约需要200毫秒,那么其中一个慢速请求只需要30.2秒.
知道这会导致什么吗?
Apache是2.2.15.(redhat版本,带有后向安全补丁... :))
提前谢谢,Björn