First requests are painfully slow

1

2

I am running Redmine under IIS using Zoo. Installation was done using the Web Platform Installer and the default configuration has not been touched.

However, when using the application, the first requests take very long to complete (sometimes more than one minute). During that time, the ruby.exe causes some CPU load (about 15%).

According to the log files, it's mainly the views taking that long to render:

Started GET "/redmine/login" for IP at 2012-09-04 09:54:08 +0200
Processing by AccountController#login as HTML
  Rendered account/login.html.erb within layouts/base (42150.5ms)
Completed 200 OK in 43508ms (Views: 43008.5ms | ActiveRecord: 0.0ms)
  Rendered account/login.html.erb within layouts/base (42435.1ms)
Completed 200 OK in 44100ms (Views: 43523.3ms | ActiveRecord: 0.0ms)

After the initial delay, further request times are totally acceptable.

Any ideas on how to speed up the warmup time?

Matthias

Posted 2012-09-04T08:23:00.537

Reputation: 148

Answers

3

I experienced a similar problem with a Redmine that I installed on a shared hosting server. In my case it's a linux/apache environment, but I have exactly the same symptoms.

Because it's shared hosting, I don't have control over the whole environment. I spent a tiny amount of time trying to fix it, and then resorted to a simple workaround. I created an every-15-minute task to retrieve the Redmine homepage:

*/15 * * * * /usr/bin/curl http://redmineserver.example.com/ --stderr - > /dev/null

That does the trick for me, apparently 15 minutes is frequent enough for the system to keep everything loaded and ready for action.

joecullin

Posted 2012-09-04T08:23:00.537

Reputation: 131

Thanks for sharing - I will use this as a workaround if no other solution is posted. – Matthias – 2012-09-05T17:13:14.700

1

See this question over at ServerFault. You should be able to set the PassengerPoolIdleTime inside your config file somewhere, but when using IIS as your web server, I'm not sure where that takes place.

Ok..try this thread instead. I don't know how much control you have over your server, but this will hopefully point you in the right direction.

In the event the forums aren't available, this is the most relevant piece:

For IdleTimeout and long delay during restarting, I just think the behavior may be caused by IIS application pool's idle shutdown feature but not IdleTimeout in fcgiext.ini. Please open the site's application pool property. Check its default idle shutdown time. The default value is 20 mins which means: if there is no request comes in every 20 mins, IIS will shutdown this pool and any new incoming request after that will definitely encounters a 'delay' to wait IIS restart worker process for the app pool and reload everything.

peelman

Posted 2012-09-04T08:23:00.537

Reputation: 4 580