Я столкнулся с уникальной проблемой последних 30 дней. После огромного количества попыток я ищу поддержку сообщества.
Я сделал веб-приложение, основанное на глубоком обучении, с использованием колбы Python Backend написан на python (код глубокого обучения), а front-end обслуживается с использованием HTML, JS и Bootstrap. Развертывание осуществляется с помощью Gunicorn. Кроме того, приложение https включено и развернуто на GCP.
Приложение работает нормально некоторое время, после чего зависает. Хотя процесс python все еще выполняется, он перестает обслуживать и отвечать на любые запросы API. Новые хиты не достигают кода Python. Такое поведение очень случайно с точки зрения времени выполнения. Иногда на остановку уходит 4-5 часов, а иногда на остановку уходит даже 2 дня. Затем я вручную запускаю приложение, используя команду gunicorn, и она работает.
Вещи, которые я пробовал -
- Проверено системная память с использованием
htop
, когда приложение находится в стадии зависания. Но, кажется, хорошо.
- Я пытался протестировать API с помощью Jmeter (выполнение нескольких запросов в цикле последовательно), и система не зависает.
- Я даже запустил приложение, используя
uwsgi + apache
, но проблема остается.
Вот команда, используемая для запуска сервера gunicorn -
gunicorn -b 0.0.0.0:443 --threads=4 --certfile=path_to_certificate_file --keyfile=path_to_key_file server:app --max-requests 1000 --access-logfile /var/log/gunicorn/gunicorn-access.log --error-logfile /var/log/gunicorn/gunicorn-error.log --capture-output --log-level debug --logger-class=simple --daemon
Я все еще не могу диагностировать точную проблему и воспроизвести ее. Ищете какое-то конкретное направление для изучения. Не стесняйтесь поделиться своей гипотезой / мыслями. Дайте мне знать, если от меня потребуется какая-либо другая информация, чтобы сделать ее более интуитивной.