O que o "início atrasado" faz no tipo de inicialização para um serviço do Windows?

78

Qual é a diferença entre Automático e Automático (Início atrasado) para uma configuração de propriedade para um serviço do Windows? ou seja, o que ganho ou perco ao definir meu serviço como um ou outro?

Executando o serviço no Windows Server 2008 x64

Cara
fonte

Respostas:

91

Um serviço marcado como Automático (Início atrasado) será iniciado logo após o início de todos os outros serviços designados como Automático . Na minha experiência, isso significa que eles são iniciados 1-2 minutos após a inicialização do computador.

A configuração é mais útil para diminuir a "loucura" de recursos quando uma máquina é inicializada.

Observe que, quando você tiver 20 serviços, todos iniciados ao mesmo tempo, cada um será iniciado mais lentamente, pois concorre com os outros por fatias dos preciosos recursos da máquina (CPU / RAM / Disco / Rede). Ou seja, cada serviço leva mais tempo para ficar disponível!

Se você tiver alguns serviços críticos, convém configurá-los para Automático e, como muitos outros, como Automático (Início Atrasado) . Isso garantirá que os serviços críticos obtenham o máximo de recursos cedo e fiquem disponíveis mais cedo, enquanto os serviços não críticos iniciam um pouco mais tarde (o que, por definição, está correto).

CoreTech
fonte
39
De fato, após o manuseio Iniciar serviços não atrasadas vai fila um segmento de trabalho que tem um atraso padrão de 120 segundos, que podem ser substituídas pelo valor AutoStartDelay no HKLM\SYSTEM\CurrentControlSet\Control. Quando isso funcionou fio executa os serviços do início retardado são tratados e quando eles são feitos do SCM sinaliza o evento \ BaseNamedObjects \ SC_AutoStartComplete ...
Tamara Wijsman
7
Além do @TomWijsman, você pode definir o atraso aparentemente por serviço, adicionando um DWORDpara HKLM\SYSTEM\CurrentControlSet\services\<service name>\AutoStartDelay.
Stajs
8

Pelo meu entendimento, é simplesmente um atraso antes de iniciar o serviço.

Versões posteriores do Windows introduziram isso para garantir que não tropeçassem nos pés um do outro durante o processo de inicialização (ter um zilhão de processos sendo inicializados ao mesmo tempo não é propício ao desempenho).

A documentação para esse recurso afirma que os serviços marcados assim serão iniciados "logo após a inicialização", espero que assim que os serviços necessários no momento da inicialização tenham se estabilizado um pouco.


fonte
0

Aqui está um exemplo. Eu tenho um serviço SonarQube que depende do meu serviço de banco de dados MySQL. Então, configurei o serviço MySQL como automático para colocar o banco de dados em funcionamento quando a máquina inicializar. Eu tenho o serviço SonarQube definido como início automático (atrasado) para garantir que ele seja iniciado APÓS o início do serviço de banco de dados do qual depende.

Se você tiver uma dependência como essa, pode ser útil usar o início atrasado para garantir que os serviços dependentes sejam iniciados na ordem correta.

Russ Jackson
fonte
8
Se você tiver uma dependência como essa, a maneira correta de lidar com isso é configurar explicitamente um serviço para depender do outro, em vez de esperar alguns minutos e esperar que ele tenha começado.
Massimo
Obrigado. Talvez você possa explicar como fazer isso? E, parece que, se funcionar, está correto. Talvez o que você recomenda seja "melhor", com o qual não discordo?
Russ Jackson
11
Veja aqui: serverfault.com/questions/24821/… .
Massimo
0

Isso também é usado quando você deseja atrasar o início de um serviço para permitir que outros serviços sejam iniciados completamente, como o Cliente SCCM, que inicia com atraso para permitir que o serviço WMI inicie totalmente, pois depende de estar totalmente ativo e correndo.

John Dean
fonte
Observarei que esse requisito é um sinal de negligência por parte do autor do serviço. A maneira correta de resolver esse problema é usar uma dependência de serviço explícita.
Brian
0

Isso é usado principalmente para serviços que começam com contas do AD. Se o serviço estiver tentando iniciar antes que o servidor tenha uma conexão de rede para entrar em contato com o controlador de domínio, ele falhará e, algumas vezes, o sistema fica travado e inacessível.

O atraso garante que o serviço seja iniciado assim que a conexão de rede estiver ativa para usar a conta do AD.

No_Name
fonte