Назад | Перейти на главную страницу

Доступная память в гибкой среде Google App Engine

Гибкая среда 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 и его развертывания в облаке вы можете выполнить следующие действия, чтобы получить объем памяти, доступный вашему приложению:

  1. Выполните команду:

    gcloud compute instances describe NAME [--zone=ZONE]
    
  2. Найдите key: gae_app_container_memory_mb

    Значение под gae_app_container_memory_mb представляет гарантированный минимальный объем памяти (в МБ), доступный вашему контейнеру. (посмотри это ссылка на сайт Чтобы получить больше информации)

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

И последнее примечание: на этот бета-выпуск гибкой среды App Engine не распространяется соглашение об уровне обслуживания или политика устаревания, и его реализация может измениться, возможно, в обратном порядке. Поэтому не рекомендуется для производственного использования.