Memória disponível no ambiente flexível do Google App Engine

1

O ambiente flexível do GAE permite especificar os recursos de que seu contêiner precisa. Por exemplo:

resources:
  cpu: 0.5
  memory_gb: 1.3
  disk_size_gb: 10

Isso alocará g1-small instâncias com 1,7 GB de memória. No entanto, se eu aumentar memory_gb para 1.5 , o GAE agora aloca n1-standard-1 instâncias com 3,75 GB de memória.

Por que o agendador parece sobrecarregar a memória em mais de 10%? Isso significa que meu contêiner em execução em g1-small não pode usar com segurança todos os 1,7 GB de memória que a instância tem?

(A questão subjacente é: dado o tamanho da memória de uma instância e funcionando em um ambiente flexível do GAE, o que devo definir node ' --max-old-space-size para garantir que meu processo não seja agitado? Mas, dadas as respostas às perguntas acima Eu provavelmente posso descobrir isso.)

    
por Piotr 02.11.2016 / 10:01

1 resposta

3

A partir de ontem, uma nova versão Beta do ambiente flexível do App Engine foi implantada e não especifica mais o tipo de máquina na criação da instância de contêiner. Conforme descrito neste link Configurações do recurso No entanto, o mecanismo do aplicativo cuida da atribuição de uma instância com recursos suficientes para pelo menos garantir sua quantidade especificada de CPU e memória para seu aplicativo. Portanto, a quantidade de memória que você especificar para a variável memory_gb será a quantidade de memória disponível para o seu contêiner.

Como alternativa, ao configurar seu aplicativo do App Engine e implantá-lo na nuvem, você pode realizar as seguintes etapas para recuperar a quantidade de memória disponível para seu aplicativo:

  1. Execute o comando:

    gcloud compute instances describe NAME [--zone=ZONE]
    
  2. Localizar key: gae_app_container_memory_mb

    O valor em gae_app_container_memory_mb representa a quantidade mínima garantida de memória (em MB) disponível para seu contêiner. (veja este link para obter mais informações)

Em relação a observações anteriores, o comportamento observado estaria relacionado à sobrecarga de instância necessária para executar o ambiente do aplicativo e, por precaução, precisava de mais memória do que o solicitado (ou seja, definindo um tipo de instância GCE mais poderoso).

Como última observação, essa versão Beta do ambiente flexível do App Engine não é coberta por nenhum SLA ou política de descontinuação, e a implementação pode mudar, possivelmente de maneira incompatível com versões anteriores. Portanto, não é recomendado para uso em produção.

    
por 16.11.2016 / 23:50