Я обслуживаю 3 модели глубокого обучения с PyTorch, django, gunicorn и Nginx (в качестве обратного прокси). Задержка HTTP-запроса составляет всего 200 мс. CUDA_VISIBLE_DEVICES=3 gunicorn MyAPP.wsgi -b MY_IP:8008 -w 4
Однако, если служба не получает HTTP-запросов в течение длительного времени (например, 12 часов), и вы неожиданно вызываете API. Ожидающие работники выходят и перезапускаются, что приводит к сверхурочной работе этого запроса (поскольку для инициализации моделей глубокого обучения требуется несколько секунд).
[2020-01-15 16:26:12 +0800 ] [573948] [КРИТИЧЕСКИЙ] РАБОЧИЙ ВРЕМЯ РАБОТЫ (pid: 977770)
[2020-01-15 08:26:12 +0000] [977770] [INFO] Работник выходит (pid: 977770)
[2020-01-15 16:26:13 +0800] [978149] [INFO] Загрузка работника с pid: 978149
[2020-01-15 16:26:38 +0800] [ 573948] [КРИТИЧЕСКОЕ] РАБОЧЕЕ ВРЕМЯ (pid: 573958)
[2020-01-15 08:26:38 +0000] [573958] [INFO] Работник выходит (pid: 573958)
[2020-01-15 16:26:39 +0800] [978295] [INFO] Загрузка работника с pid: 978295
Итак, есть ли способ настроить gunicorn, чтобы поддержать начинающих работников несмотря на то, что в настоящее время нет HTTP-запроса?