Недостаточно памяти с сельдереем и редисом - нужна помощь в настройке сельдерея - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть приложение django 2, которое загружает от 1 до многих фотографий (~ 3-4 МБ на изображение) и использует face_recognition для определения местоположения лиц и кодировки.Изображения и созданные эскизы сохраняются в файловой системе, а данные - в базе данных MySQL.Приложение работает, за исключением того, что загрузка и поиск 16 лиц на 3 фотографиях занимает около 2 минут и использует около 6,5 ГБ ОЗУ без подкачки (моя система Ubuntu 18.04 имеет в общей сложности 16 ГБ ОЗУ и работает с около 8 ГБ свободной памяти).и 1 ГБ подкачки.)

Когда я использую celery (v 4.2.1) и redis (v 2.10.6) и redis-server (v 4.0.9), чтобы разгрузить распознавание лиц из моего приложения djangoзадачам сельдерея не хватает памяти и рабочих убивают до того, как они закончат. Для каждой фотографии для распознавания лиц существует 1 задача сельдерея, а django выполняет загрузку файлов, создание эскизов и запись в БД для трех фотографий.Обычно 1 задание завершается, но не всегда.Я даже добавил экспоненциальные повторы для задач сельдерея, но это не помогло.Посмотрев сверху во время распознавания лица сельдерея, я заметил, что объем свободной оперативной памяти остался около 6 ГБ, но 1 ГБ подкачки полностью потребляется, и затем задачи сельдерея начинают умирать.Сообщение об ошибке, которое я получаю, не хватает памяти, когда они умирают.

Исходя из моих наблюдений, я пришел к выводу, что в моей системе достаточно ОЗУ для этих трех изображений, но каким-то образом мне нужно настроить сельдерей так, чтобы он использовал меньше подкачки и больше памяти.Я не уверен, является ли это реальной проблемой или нет, и я не нашел способа настроить сельдерей.Кстати, у меня есть те же проблемы, независимо от того, запускаю ли я django в режиме отладки или нет.

Спасибо за любые предложения, которые могут вам понадобиться для решения этой проблемы с нехваткой памяти у сельдерея.

Mark

...