Na nova empresa em que estou estacionado, notei que, quando reiniciamos nosso servidor, leva uma eternidade para iniciar o serviço MSMQ. É iniciado automaticamente e no estado inicial por um período muito extenso - estamos tocando em horas, não em minutos (neste momento já se passaram 67 minutos e ainda não acabou)!
Minha experiência com o MSMQ é como a dos pinguins com vôo - já vi, nunca fiz isso sozinho, então não posso realmente julgar a razoabilidade de um consumo de tempo tão grande. No entanto, não parece certo e sinto que há algo suspeito por trás disso.
A explicação que tenho é que " sempre foi assim ". Por esse motivo, ainda deveríamos usar fogo e não eletricidade para obter luz... Não estou dizendo que os caras aqui estão errados. Eu só desejo investigar ainda mais como "sangue fresco". Um sangue muito impaciente, devo acrescentar.
Meu google-fu não produziu muito do que eu tenha mais conhecimento (principalmente o que fazer se não funcionar ou funcionar de forma insatisfatória durante o estágio operatório). O log de eventos não diz nada, os outros serviços são iniciados manualmente depois (exceto os padrão). A lentidão parece ser consistente na inicialização, mas não de outra forma. As filas são esvaziadas e o servidor se comporta mais ou menos como uma pessoa normal. Temos espaço no disco rígido em abundância.
Então, a questão é dupla.
- Um período de início tão longo para o MSMQ é aceitável e esperado?
- O que devo investigar mais de perto se estiver perturbado com o comportamento?
O sistema é o seguinte.
- Windows Server 2008 R2 Standard SP1
- 64 bits, 8 GB, Xeon 2,4 GHz (2 kernels)
Você deve ter MUITAS mensagens. MSMQ leva séculos para mapear todas as mensagens na memória. Você pode ter verificado se as filas que você usa estão vazias, mas essas não serão as filas que são o problema. Geralmente diário e filas do sistema. Faça uma verificação rápida da pasta system32\MSMQ\storage - ela conterá MUITOS arquivos de 4 MB. Provavelmente serão 1.000. Em caso afirmativo, verifique com qual letra eles começam. J é para diário, P é para persistente. Em seguida, use o monitor de desempenho para examinar TODOS os objetos MSMQ, não apenas as filas que você usa para seu aplicativo. Veja também as filas de diário se você tiver arquivos J*.MQ. Você acabará encontrando as filas acumulando as mensagens. Não consigo pensar em nenhum outro motivo para sua inicialização lenta.
Investigar. 90 minutos para uma reinicialização regular do servidor são dolorosos. Se você precisa de alta disponibilidade, isso significa que você está fora de um nó por 1,5 horas APENAS PARA REINICIAR (o que acontece regularmente durante a aplicação de patches). Isso significa que você precisa tecnicamente de 3 a 4 nós para estar altamente disponível. Algo está MUITO estranho aqui. Eu pessoalmente não aceitaria isso.
Eu poderia entender isso quando o servidor travar. Se um log de transações precisar ser revertido, isso pode levar AGES. Mas o MSMQ não está lidando com transações normalmente que geram muitos gigabytes, E - uma reinicialização não deve resultar em operações excessivas aqui.