Os primeiros pedidos são dolorosamente lentos

1

Estou executando o Redmine no IIS usando o Zoo. A instalação foi feita usando o Web Platform Installer e a configuração padrão não foi tocada.

No entanto, ao usar o aplicativo, os primeiros pedidos demoram muito para serem concluídos (às vezes, mais de um minuto). Durante esse tempo, o ruby.exe causa alguma carga na CPU (cerca de 15%).

De acordo com os arquivos de log, são principalmente as exibições que levam muito tempo para renderizar:

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)

Após o atraso inicial, outros tempos de solicitação são totalmente aceitáveis.

Alguma idéia de como acelerar o tempo de aquecimento?

    
por Matthias 04.09.2012 / 10:23

2 respostas

3

Eu experimentei um problema semelhante com um Redmine que eu instalei em um servidor de hospedagem compartilhada. No meu caso, é um ambiente linux / apache, mas tenho exatamente os mesmos sintomas.

Como é hospedagem compartilhada, não tenho controle sobre todo o ambiente. Passei uma pequena quantidade de tempo tentando corrigi-lo e, em seguida, recorri a uma solução simples. Eu criei uma tarefa a cada 15 minutos para recuperar a página inicial do Redmine:

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

Isso faz o truque para mim, aparentemente 15 minutos é freqüente o suficiente para o sistema manter tudo carregado e pronto para ação.

    
por 05.09.2012 / 02:04
1

Veja esta pergunta no ServerFault. Você deve ser capaz de definir o PassengerPoolIdleTime dentro de seu arquivo de configuração em algum lugar, mas ao usar o IIS como seu servidor web, não tenho certeza de onde isso ocorre.

Ok..try este tópico . Eu não sei o quanto de controle você tem sobre o seu servidor, mas isso o ajudará na direção certa.

No caso dos fóruns não estarem disponíveis, esta é a parte mais relevante:

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.

    
por 26.12.2012 / 22:02