Como modificar configurações de memória do Java

Dependendo dos requisitos de tráfego e processamento, talvez seja necessário mudar o tamanho da memória de heap ou o tamanho dos metadados de classe para os nós que executam componentes da nuvem privada baseados em Java.

Esta seção fornece os tamanhos de memória de heap do Java padrão e recomendados, bem como o processo para mudar os padrões. Por fim, esta seção descreve como mudar outras configurações da JVM usando arquivos de propriedades.

Tamanhos de memória de heap padrão e recomendados

A tabela a seguir lista os tamanhos de memória de heap do Java padrão e recomendados para componentes da nuvem privada baseados em Java:

Componente Nome do arquivo de propriedades Padrão
Tamanho do heap
Recomendado
Tamanho do heap
Ambiente de execução
Cassandra N/A Configurado automaticamente1 Configurado automaticamente1
Processador de mensagens message‑processor.properties 512MB 3 GB a 6 GB2
Roteador router.properties 512MB 512MB
Google Analytics
Servidor Postgres postgres‑server.properties 512MB 512MB
Servidor Qpid qpid‑server.properties 512MB 2 GB a 4 GB
Administração
Servidor de gerenciamento management‑server.properties 512MB 512MB
Nova interface do Edge (edge-management-ui) N/A App nativo3 App nativo3
SymasLDAP N/A App nativo3 App nativo3
Zookeeper zookeeper.properties 2.048 MB 2.048 MB
Observações

1 O Cassandra calcula dinamicamente o tamanho máximo do heap quando é iniciado. Atualmente, esse valor é metade da memória total do sistema, com um máximo de 8.192 MB. Para informações sobre como definir o tamanho do heap, consulte Mudar o tamanho da memória de heap.

2 Para processadores de mensagens, a Apigee recomenda definir o tamanho do heap entre 3 GB e 6 GB. Aumente o tamanho do heap acima de 6 GB somente depois de realizar testes de desempenho.

Se o uso do heap se aproximar do limite máximo durante o teste de desempenho, aumente o limite máximo. Para informações sobre como definir o tamanho do heap, consulte Mudar o tamanho da memória de heap.

3 Nem todos os componentes da nuvem privada são implementados em Java. Como não são baseados em Java, os apps executados nativamente na plataforma do host não têm tamanhos de heap Java configuráveis. Em vez disso, eles dependem do sistema host para o gerenciamento de memória.

Para determinar a quantidade total de memória que a Apigee recomenda alocar aos componentes baseados em Java em um nó, adicione os valores listados acima para cada componente nesse nó. Por exemplo, se o nó hospedar os servidores Postgres e Qpid, a Apigee recomenda que a alocação de memória combinada seja entre 2,5 GB e 4,5 GB.

Para uma lista de hardware necessário (como RAM), consulte Requisitos de instalação.

Mudar os tamanhos da memória de heap

Para mudar as configurações de memória de heap, edite o arquivo de propriedades do componente. Por exemplo, para o processador de mensagens, edite o /opt/apigee/customer/application/message-processor.properties arquivo.

Se o arquivo message-processor.properties não existir ou se o arquivo .properties correspondente para qualquer componente do Edge não existir, crie-o e mude a propriedade do arquivo para o usuário "apigee", conforme mostrado no exemplo a seguir:

chown apigee:apigee /opt/apigee/customer/application/message-processor.properties

Se o componente estiver instalado em várias máquinas, como o processador de mensagens, então você deve editar o arquivo de propriedades em todas as máquinas que hospedam o componente.

A tabela a seguir lista as propriedades que você edita para mudar os tamanhos do heap:

Propriedade Descrição
bin_setenv_min_mem

O tamanho mínimo do heap. O padrão é baseado nos valores listados em Tamanhos de memória de heap padrão e recomendados.

Essa configuração corresponde à opção -Xms do Java.

bin_setenv_max_mem

O tamanho máximo do heap. O padrão é baseado nos valores listados em Tamanhos de memória de heap padrão e recomendados.

Essa configuração corresponde à opção -Xmx do Java.

bin_setenv_meta_space_size

O tamanho padrão dos metadados de classe. O valor padrão é definido como o valor de bin_setenv_max_permsize, que é 128 MB. No processador de mensagens, a Apigee recomenda definir esse valor como 256 MB ou 512 MB, dependendo do tráfego.

Essa configuração corresponde à opção -XX:MetaspaceSize do Java.

Ao definir propriedades de tamanho de heap em um nó, use o sufixo "m" para indicar megabytes, conforme mostrado no exemplo a seguir:

bin_setenv_min_mem=4500m
bin_setenv_max_mem=4500m
bin_setenv_meta_space_size=1024m

Depois de definir os valores no arquivo de propriedades, reinicie o componente:

/opt/apigee/apigee-service/bin/apigee-service component restart

Exemplo:

/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

Mudar outras propriedades da JVM

Para configurações Java não controladas pelas propriedades listadas acima, também é possível definir o seguinte no arquivo de propriedades correspondente para qualquer componente do Edge:

  • bin_setenv_ext_jvm_opts: defina qualquer propriedade Java não especificada por outras propriedades. Exemplo:
    bin_setenv_ext_jvm_opts=-XX:MaxGCPauseMillis=500

    No entanto, não use bin_setenv_ext_jvm_opts para definir -Xms, -Xmx, ou -XX:MetaspaceSize já que esses valores são controlados pelas propriedades listadas acima.

Para outras dicas sobre como configurar a memória para componentes da nuvem privada, consulte este artigo nos fóruns do Edge.