我在Linux x86_64系统上部署了一个redmine实例,我很难解决一个有趣的性能不一致问题.它的行为如下:
单独放置几个小时(根本没有对应用程序的请求)然后建立连接,响应前几个请求需要很长时间(可能差到15秒,有时每个响应大约1分钟).在前几个请求之后,它的性能非常快,几乎可以立即从日志中看到响应时间不到100毫秒.
我尝试了几个选项来使用mongrel运行它,将它部署在乘客Nginx上,以及乘客Apache上.这种行为可以简单地重现.我从测试中意识到它保持忙碌时,根本就没有问题.
这是什么一回事呢?我怎样才能改善这个?
解决方法:
这个问题很可能是由于乘客游泳池闲置所致.您可以将PassengePoolIdleTime增加到更大的数字,或者如果您不想将其超时,则将值设置为0.下面的Apache配置应解决问题
<VirtualHost *:80>
DocumentRoot /path/to/redmine/site/public
ServerName example.com
PassengerPoolIdleTime 0
<Directory "/path/to/redmine/site/public">
PassengerEnabled on
AllowOverride
Options -MultiViews
</Directory>
</VirtualHost>