mod mono consumindo muita memória e CPU em algumas situações. Como melhorar isso?

mod mono consumindo muita memória e CPU em algumas situações. Como melhorar isso?

Eu configurei um site apache + mod_mono asp.net mvc3 e estou enfrentando alguns problemas estranhos com ele.

Às vezes, por algum motivo que não sei, o site simplesmente para de responder.
Quando isso acontece, eu ssh na minha conta Linode (onde hospedo meu site) e executo "top", apenas para verificar se o processo mono está usando até 400% da CPU (como isso é possível? Virtualização, talvez?) e muita memória.
Este é, supostamente, um problema conhecido (Veja isso). Meu site, entretanto, é muito novo e nunca tenho mais de 10 a 20 visitantes online, então uma carga alta está fora de questão.

Também fiz alguns testes de estresse localmente e o problema não aparece. O problema só aparece no meu servidor de produção (que funciona 24 horas por dia, 7 dias por semana), o que me fez pensar que poderia ser que o mono precisasse ser reiniciado de vez em quando (embora eu gostaria de saber por que isso é necessário no meu caso, já que meu website ainda é muito discreto). Por esse motivo, configurei um tempo de reinicialização automática de duas horas para mono. Mesmo depois disso, o problema ainda apareceu (embora com menos frequência).

Então pensei imediatamente em configurar MonoMaxActiveRequests e MonoMaxWaitingRequests, mas a verdade é que não tenho ideia se esses valores devem ser baixos ou altos para evitar o problema que estou enfrentando. Também não entendo por que o valor padrão de MonoMaxWaitingRequests é apenas 20. Isso significa que 40 solicitações simultâneas é tudo o que meu servidor pode suportar, já que a fila de espera não pode ultrapassar 20?

No geral, minhas perguntas são: Estou fazendo algo errado ou ainda há um problema com o mod mono? Como posso saber quais valores são sensatos para MonoMaxActiveRequests e MonoMaxWaitingRequests? Devo aumentar esses valores ou reduzi-los para evitar o problema relatado?

Desde já, obrigado.

Responder1

MonoMaxActiveRequests e MonoMaxWaitingRequests tornam esse valor 0.

e defina a solicitação MonoAutoRestartMode 1000

informação relacionada