uWSGI:--master with --emperor产生两个皇帝

时间:2013-02-24 18:25:33

标签: uwsgi

我可以看到,如果我像这样启动uwsgi:

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 ***

3 个答案:

答案 0 :(得分:36)

以下是official documentation所说的内容:

  

皇帝一般不应该使用--master,除非是主人   特别需要高级日志记录等功能。

如果您想知道master选项的作用,here就是答案:

  

     uWSGI内置的prefork +线程多工作者管理   模式,通过轻按主开关激活。对于所有实际   服务部署不使用master不是一个好主意   模式。

所以,总结一下:

  • --master用于通常的uWSGI实例,
  • 不要将--master用于uWSGI Emperor。

答案 1 :(得分:3)

我不同意 - 文档说无论如何在生产中使用它 NOT 并不是一个好主意;我想双重否定可以写得更清楚。

因此,使用它似乎是一个好主意,因此警告。

答案 2 :(得分:0)

我想添加一些特定信息,以便将harakiri模式用于在皇帝下运行的附庸。如果master也不在vassals的配置中harakiri将无效,无论是否在emperor配置中指定master / harakiri。给出一个示例emperor config:

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

为了harakiri工作,封臣将需要以下内容:

[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

请注意,master和harakiri都存在于附庸中,并且在emperor配置中设置它们对uwsgi版本2.0.12的vassals没有影响