我目前正面临Passenger(4.0.18)与简单的Rails 4.0.0应用程序相结合的问题。 问题是,在启动apache之后,第一个请求非常慢(通常为30.x秒)。以下请求非常快,但如果应用程序空闲20秒以上,则会再次发生同样的情况。
现在,这个问题一般已经在这里讨论了几次,当然我已经调整了apache配置:
PassengerSpawnMethod smart
PassengerPoolIdleTime 1000
RailsAppSpawnerIdleTime 0
PassengerMaxRequests 1000
PassengerMaxPreloaderIdleTime 0
但这根本没有帮助。如果我检查乘客状态,它会告诉我:
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
有趣的是,当我在执行请求时对乘客状态进行“观察”时,这里没有任何改变。 (特别是请求行)。
我已经摆弄了tcpdump,所有请求都及时到达,因此没有可见的网络延迟。 我还启用了apache扩展日志记录(添加了请求时间) - 这非常有趣,假设正常请求需要大约200毫秒,然后其中一个慢速请求需要30.2秒。
知道这可能导致什么?
Apache是2.2.15。 (redhat版本,带有后向安全补丁... :))
提前致谢, 的Björn
答案 0 :(得分:2)
使用PassengerPreStart:http://www.modrails.com/documentation/Users%20guide%20Apache.html#PassengerPreStart。该文档部分还解释了为什么您会遇到您观察到的行为。
答案 1 :(得分:-1)