Назад | Перейти на главную страницу

Что ДЕЙСТВИТЕЛЬНО делает параметр --master в uwsgi?

Хотя документация uwsgi, возможно, подходит для тех, кто уже знаком с администрированием серверов, она определенно не очень полезна для тех, кто пытается ее изучить. Я надеюсь, что кто-то может помочь с вопросами, приведенными ниже.

  1. Я читал, что он может изящно закрывать / перезагружать процессы. Но что это значит? И какова альтернатива изящному закрытию?

  2. Когда эти процессы могут завершиться изящно / некрасиво? Это если сбой процесса? Или, если я решил закрыть uwsgi, например, нажав ctrl + c? Или в другом случае? Могу ли я проверить эту изящество, например, спровоцировать что-то на сбой / закрытие, а затем посмотреть результат с мастером и без него?

  3. Делает ли он что-нибудь еще, кроме как изящно закрывать процессы?

  4. Поскольку включение главного процесса является необязательным, должны быть случаи, когда его использование нецелесообразно. Что это за случаи?

Я согласен с вами, что документы Uwsgi неплохие.

Сейчас:

1) Это означает, что сервер uwsgi корректно завершит / перезапустит / перезагрузит свой главный процесс, а его рабочие изящно отправят им сигнал «SIGHUP», позволяя процессам реагировать на этот сигнал: «очистить буферы, закрыть все установленные соединения / сокеты, и т.д. "(--reload) параметр

2) Альтернативой «изящно» будет закрытие / перезагрузка приложения uwsgi, как вы сказали «грязно». Это означает отправку главного процесса и его рабочих процессов «SIGTERM», следовательно, жесткую перезагрузку всех рабочих процессов и главного процесса (--die-on-term). Также есть '--stop', который является SIGINT, который на самом деле уничтожит весь ваш стек uWsgi, а также 'ваше поведение Ctrl + C при прерывании клавиатуры "

3) Вы можете поиграться с процессами с этими параметрами и завершить их либо изящно, либо грубо, но поведение хорошо известно, резкое закрытие любого приложения / сбои не очень хорошо резонируют, не позволяя завершить операции ввода-вывода диска, содержимое кеша устаревшие, потерянные состояния и т. д.

4) Да, иногда вам не нужен мастер-процесс uwsgi: Из документации:

"В рамках функций управления процессами uWSGI можно включить главный процесс для лучшего управления рабочими процессами. Когда это включено, файл или модуль сценария WSGI будут предварительно загружены в родительский главный процесс. Затем рабочие процессы будут разветвлены из этого главного процесса. Это может вызвать проблемы, если сценарий или модуль WSGI при загрузке создает фоновый поток, который должен выполняться в каждом рабочем процессе, так как этот фоновый поток будет убит, когда рабочий процесс будет разветвлен ».

Надеюсь, что это ответ на ваш вопрос.