IIS 7 - o trabalhador processa mais de um

2

se eu definir o processo de trabalho como 1, meu pool de aplicativos trava. se eu definir pelo menos 6, tudo funciona bem.

mas todos os artigos que leio dizem "não definir mais do que 1"

então, nessa prática, estou errado? ou quem está errado?

é claro que eu gostaria de usar menos memória, cpu. e outra razão que eu odeio sobre mais processos de trabalho são as sessões. está realmente me incomodando.

o site que funciona sob o pool de aplicativos tem mais de 20.000 visitantes on-line Eu tentei depurar arquivos de despejo, mas não encontrei nada interessante

por favor me dê um conselho. obrigada.

    
por zukura 16.08.2012 / 19:16

1 resposta

0

Provavelmente, o número baixo de N está suspenso devido a uma condição de corrida em seu código em algum lugar.

Com o MaxProcesses = 6, você está reduzindo o nível de simultaneidade em processo, enviando menos solicitações para mais processos de trabalho.

Para depurar a causa original:

  • Configurar para 1 processo de trabalho
  • Aguarde um travamento - convém ativar o OrphanWorkerProcess para o pool de aplicativos para deixar o w3wp suspenso na memória depois que ele for reciclado
    • presumivelmente ele é reciclado quando fica pendurado, certo? Falha em um ping, marcado como sem resposta, eventos nos logs de eventos do aplicativo e do sistema?
  • Pegue um despejo de memória do processo enquanto ele está no estado suspenso
  • Alimente esse despejo no DebugDiag 1.2 e veja o que ele sugere

Como você conseguiu o despejo de memória? (como regra, você deve usar um depurador do mesmo bitness que o processo worker para obter informações úteis a partir dele).

    
por 17.08.2012 / 03:59