Преобразование моего приложения Django/Python из стандартной среды App Engine в гибкую среду
Я пытаюсь перевести свое приложение Django/Python из стандартной среды Google App Engine в гибкую среду в основном из-за того, что приложение стало медленным и постоянно достигало мягкого предела памяти, и мне предложили перейти на более высокий класс экземпляра. Я уже был на самом высоком классе экземпляров. Моя проблема заключается в том, что когда я пытаюсь развернуть приложение, сборка проходит успешно, но я продолжаю получать ошибку при обновлении службы.
"Ваше развертывание не смогло стать здоровым за отведенное время и поэтому было откачено. Если вы считаете, что это была ошибка, попробуйте изменить параметр 'app_start_timeout_sec' в разделе 'readiness_check'."
".Я пытался настроить секцию readiness_check, чтобы дать больше времени, но это просто занимает больше времени, чтобы дать мне ту же ошибку, похоже.Я пробовал гуглить эту проблему и добавлять больше памяти, но та же ошибка все еще появляется. Я застрял на этом этапе и не уверен, где еще искать.
Вот app.yaml, который успешно развернут в стандартном окружении
entrypoint: gunicorn -b :$PORT xpotools.wsgi
instance_class : F4_1G
automatic_scaling:
min_instances: 5
min_pending_latency: 30ms
max_pending_latency: 4s
max_concurrent_requests: 20
min_idle_instances: 3
inbound_services:
- warmup
handlers:
- url: /static
static_dir: static/
secure: always
- url: /.*
script: auto
secure: always
- url: /_ah/warmup
script: auto
Вот app.yaml, который я пытаюсь развернуть в гибкой среде
env: flex
runtime_config:
python_version: 3.7
resources:
cpu: 1
memory_gb: 6
disk_size_gb: 20
entrypoint: gunicorn -b :$PORT xpotools.wsgi
Я что-то упустил?
Вы сказали, что ваше приложение превышает стандартную память GAE.
В какой момент ваше приложение начинает потреблять много памяти? Если ваше приложение начинает потреблять много памяти сразу после развертывания (еще до получения HTTP-запроса), то проблема может быть в этом.
Я не до конца понимаю проблему, но GAE flex запускает много рабочих при развертывании, и я подозреваю, что каждый из этих рабочих занимает значительное количество памяти, и в совокупности они превышают лимит памяти.
Попробуйте обновить ваше приложение так, чтобы память потреблялась в более позднее время, например, после получения первого HTTP-запроса. Это помогло мне решить аналогичную проблему.