2013-02-24 2 views
28

я могу видеть, что если я начну uwsgi так:uWSGI: --master с --emperor нерестится два императоров

sudo /usr/local/bin/uwsgi --emperor /etc/uwsgi/vassals --uid www --gid www 

создает один императорскую копию. Но если я начну с --master дополнительно (как рекомендовано here), он создает две копии императора. Имеет ли смысл использовать --master с --emperor? Я бы сказал, нет, но если я запускаю его без этой опции я получаю это предупреждение:

*** WARNING: you are running uWSGI without its master process manager ***

ответ

35

Вот что official documentation говорит:

император не должен вообще быть запущен с --master , если не требуются мастер-функции , такие как расширенное ведение журнала.

Если вам интересно, что делает master вариант, here ответ:

мастер

uWSGI встроенный PreFork + резьб многолетнего управления РАБОТНИК режим, активируемый стряхивая главный переключатель включено. Для всех практичных сервисов для развертывания это не очень хорошая идея не использовать мастер-режим .

Итак, подведем итоги:

  • Использование --master для обычного uWSGI например,
  • Не используйте --master для uWSGI императора.
+6

Значит ли это, что сообщение журнала WARNING является необоснованным? – Max

+0

Я думаю, да. Возможно, экземпляр uwsgi не может отличить, было ли это вызвано с императором или нет - я не знаю. – MrKsn

3

Я не согласен - документация говорит, что это не очень хорошая идея НЕ использовать его в производстве в любом случае; Думаю, двойной негатив можно было бы написать более четко.

Поэтому было бы разумно использовать его, следовательно, предупреждение.

+0

Как я понимаю, производственный сервер не должен запускать экземпляры uwsgi автономно - я имею в виду, без какого-либо «надзирателя».Если вы запускаете экземпляр uwsgi «simlple», это всего лишь экземпляр - без forks/threads, и если он не сбой никого, кроме того, что вы запустите его снова. Итак, вы можете запустить uwsgi --master, который создаст uwsgi «надзиратель», и надсмотрщик запустит несколько «простых» экземпляров uwsgi с возможностями fork/threads и перезапуска. – MrKsn

+0

Однако император уже заботится о вилках, потоках и перезапусках для всех своих вассалов, поэтому нет необходимости в «мастере». Поправьте меня если я ошибаюсь. – MrKsn

0

Я хотел бы добавить определенную информацию для использования режима харакири для вассалов, работающих под императором. Если мастер не находится в конфиге для вассалов, харакири не будет иметь никакого эффекта независимо от того, указан ли мастер/харакири в конфигурации императора. Учитывая пример императора конфигурации:

[uwsgi] 
emperor = ... 
daemonize = ... 
emperor-pidfile = ... 
vassal-set = enable-metrics=1 
emperor-stats = 127.0.0.1:6000 

Вассалам потребуется следующее для харакири работы:

[uwsgi] 
strict 
processes = 4 
stats = 127.0.0.1:5000 
memory-report 
daemonize = ... 
pidfile = ... 
close-on-exec 
py-tracebacker = /tmp/tbsocket 
master 
harakiri = 5 
harakiri-verbose 

Обратите внимание, что мастер и харакири оба присутствуют в вассала и устанавливать их в императоре конфигурации будет иметь не влияет на вассалов для версии uwsgi 2.0.12

Смежные вопросы