我使用Supervisor和uWSGI Emperor模式。 当我设置limit-as 512 (MB)时,工人立即死亡(重生,死亡,重生,死亡,每3/4秒):
[uwsgi] workers = 4 threads = 40 limit-as = 512 harakiri = 20 max-requests = 1600 ... non-performance/memory/processor-related settings ommitted
但是,如果我改变了limit-as :
[uwsgi] workers = 4 threads = 40 limit-as = 1024 harakiri = 20 max-requests = 1600 ... non-performance/memory/processor-related settings ommitted
并重新启动uwsgi, 问题立即消失 。 为了摆在这一点,我已经修改了设置回512,再次重新启动, 问题立即回来 。
注意:我的应用程序是一个简单的Django应用程序,在启动时没有额外的Python设置。
它看起来像512M的地址空间是不够你的应用程序。 如果你必须尊重这样一个限制减less线程的数量,或减less他们与thread-stack-size = 512的堆栈大小(512K通常是一个Python应用程序的最小量)