Гибкая среда GAE позволяет указать ресурсы, необходимые вашему контейнеру. Например:
resources:
cpu: 0.5
memory_gb: 1.3
disk_size_gb: 10
Это выделит g1-small
экземпляры с 1,7 ГБ памяти. Однако если я подниму memory_gb
к 1.5
, GAE теперь выделяет n1-standard-1
экземпляры с 3,75 ГБ памяти.
Почему планировщик перераспределяет память более чем на 10%? Означает ли это, что мой контейнер работает в g1-small
не можете безопасно использовать все 1,7 ГБ памяти, имеющейся у экземпляра?
(Основной вопрос: учитывая размер памяти экземпляра и работу в гибкой среде GAE, что я должен установить node
с --max-old-space-size
чтобы убедиться, что мой процесс не ломается? Но, дав ответы на поставленные выше вопросы, я, вероятно, смогу это понять.)
Вчера была развернута новая бета-версия гибкой среды App Engine, в которой больше не указывается тип машины при создании экземпляра контейнера. Как описано в разделе "Настройки ресурса" ссылка на сайт, механизм приложения позаботится о назначении экземпляра с достаточными ресурсами, чтобы, по крайней мере, гарантировать указанный вами объем ЦП и памяти для вашего приложения. Поэтому объем памяти, который вы указываете для memory_gb
переменной, будет объем памяти, доступный для вашего контейнера.
Кроме того, после настройки приложения App Engine и его развертывания в облаке вы можете выполнить следующие действия, чтобы получить объем памяти, доступный вашему приложению:
Выполните команду:
gcloud compute instances describe NAME [--zone=ZONE]
Найдите key: gae_app_container_memory_mb
Значение под gae_app_container_memory_mb
представляет гарантированный минимальный объем памяти (в МБ), доступный вашему контейнеру. (посмотри это ссылка на сайт Чтобы получить больше информации)
Что касается ваших предыдущих наблюдений, наблюдаемое поведение будет связано с необходимыми накладными расходами экземпляра для запуска среды приложения, и поэтому в качестве меры предосторожности потребовалось больше памяти, чем запрошено (т.е. установка более мощного типа экземпляра GCE).
И последнее примечание: на этот бета-выпуск гибкой среды App Engine не распространяется соглашение об уровне обслуживания или политика устаревания, и его реализация может измениться, возможно, в обратном порядке. Поэтому не рекомендуется для производственного использования.