Почему gevent выдает ошибку "Слишком много открытых файлов" во время нагрузочного тестирования?

У меня есть установка, состоящая из nginx, gunicorn и django. Все они запускаются через контейнеры docker. В django, когда приходит запрос, я сохраняю файлы изображений, которые отправляются через request.

Поскольку мой код связан с IO, я хотел использовать gevent, однако, во время нагрузочных тестов он выдает "Error at ...[Errno 24] Too many open files:", если я не сделаю рабочих соединений 2, что слишком мало.

Я исследовал эту ошибку, некоторые люди предлагают увеличить ulimit -n, но по умолчанию контейнер имеет лимит 1048576. Он не позволяет увеличить его. Я также пробовал использовать eventlet вместо gevent, но ошибка та же.

Сообщение об ошибке

Ошибка связана с этой частью:

with open(path, "wb") as f:
            f.write(imgfile)

Есть предложения?

Вернуться на верх