O que a opção --master REALMENTE faz no uwsgi?

6

Embora a documentação do uwsgi seja talvez boa para alguém que já esteja familiarizado com a administração do servidor, definitivamente não é tão útil para alguém tentando aprendê-la. Espero que alguém possa ajudar com as perguntas abaixo.

  1. Eu li que ele pode fechar / recarregar os processos normalmente. Mas o que isso significa? E qual é a alternativa para fechar graciosamente?

  2. Quando é que esses processos podem fechar de forma elegante / feia? É se um processo falhar? Ou se eu escolhi fechar o uwsgi, por exemplo, pressionando ctrl + c? Ou em outro caso? Posso testar essa graça, por exemplo, provocar smth para travar / fechar e, em seguida, ver o resultado com e sem master?

  3. Isso faz alguma outra coisa além de permitir que os processos sejam encerrados normalmente?

  4. Como a ativação do processo mestre é opcional, deve haver casos em que não é vantajoso usá-lo. Quais são esses casos?

por Mads Skjern 11.03.2015 / 07:23

1 resposta

5

Eu concordo com você que os documentos da Uwsgi são muito bons.

Agora:

1) Isso significa que o servidor uwsgi irá desligar / reiniciar / recarregar seu processo mestre e seus trabalhadores enviando-lhes um sinal 'SIGHUP', permitindo que os processos respondam a esse sinal: "esvazie os buffers, feche todas as conexões estabelecidas / sockets, etc "(--reload) opção

2) Alternativa para 'graciosamente' seria desligar / recarregar o aplicativo uwsgi como você disse 'sujo'. Significa enviar um processo mestre e o sinal SIGTERM de seus trabalhadores, portanto, recarregar brutalmente todos os trabalhadores e o processo mestre (--die-on-term). Existe também '--stop' que é o SIGINT que realmente mata toda a sua pilha uWsgi, que também é 'o comportamento de Ctl + C da interrupção do teclado'

3) Você pode brincar com os processos com essas opções e desligá-los de forma elegante ou brutal, mas os comportamentos são bem conhecidos, desligando qualquer aplicativo brutalmente / falhas não ressoam bem, não permitindo que as operações de disco / i terminem , conteúdos de conteúdo em cache, estados perdidos, etc.

4) Sim, às vezes você não quer o processo mestre do uwsgi: De docs:

"Como parte dos recursos de gerenciamento de processos da uWSGI, é possível habilitar um processo mestre para gerenciar melhor os processos de trabalho. Quando isso é ativado, o arquivo ou módulo de script WSGI será pré-carregado no processo mestre pai. Os processos de trabalho serão bifurcados este processo mestre. Isso pode causar problemas se o script ou módulo WSGI quando carregado criar um encadeamento de plano de fundo que deve ser executado em cada processo de trabalho, pois esse encadeamento de plano de fundo será eliminado quando o processo de trabalho for bifurcado. "

Espero que isso responda à sua pergunta.

    
por 21.06.2017 / 18:23

Tags