Я использую Supervisor и режим uWSGI Emperor. Когда я установил limit-as
к 512
(МБ) рабочие умирают мгновенно (возрождение, смерть, возрождение, смерть, каждые 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 во время запуска.
похоже, что 512 МБ адресного пространства недостаточно для вашего приложения. Если вы должны соблюдать такой предел, уменьшите количество потоков или уменьшите их размер стека с thread-stack-size = 512 (512k обычно является минимальной суммой для приложения python)