Tecnologia > Manual de Instalação > Informações Técnicas > Servidor Java EE > GlassFish > Configurações > Configurações de memória e servidor de páginas HTTP

Configurações de memória e servidor de páginas HTTP

O GlassFish é uma aplicação Java, logo, é necessário efetuar um ajuste fino nas configurações padrões da máquina Java para que ele funcione da melhor forma possível em um ambiente de produção.

É preciso ajustar as configurações de memória e o servidor de páginas HTTP embutido no GlassFish para atender a maior demanda de usuários, para realizar os ajustes, execute os seguintes procedimentos:

  1. Com o servidor iniciado, acesse o console de administração, por padrão é através da URL http://localhost:4848;
  2. Informe o usuário (User Name) e a senha (Password) para fazer login. Por padrão, o usuário e senha configurados são admin e adminadmin respectivamente;
  3. Acesse Configurations > server-config > JVM Settings > JVM Options:
  1. Altera as seguintes chaves conforme descrito abaixo:
    Chave (Value)Novo ValorDescrição
    -XX:MaxPermSize=192mO valor recomendado é ¼ do valor configurado pela chave –Xmx, ou 512 MB (o que for menor). Indica a quantidade de memória alocada no PermGenSpace da VM.
    -clientAltere para –server, pois esta aplicação é um servidor que deve ficar no ar por vários dias direto.Indica para a JVM que esta é uma aplicação client (como um aplicativo Java Swing, por exemplo).
    -Xmx512mDeve ser configurado conforme a quantidade de memória física disponível na máquina, de tal forma que não seja feito muito swap de disco pelo Windows. Valores típicos ficam de faixa de 1 a 3 GB (com portal, normalmente fica mais próximo dos 3 GB).Tamanho máximo alocado pelo Java para uso como HEAP de memória. Basicamente, é a área de trabalho da memória para o GlassFish.
  1. Utilize o botão Add JVM Option para incluir as chaves abaixo:
    Chave (Value)Descrição
    -Xmn512mIndica a quantidade de memória reservada para a criação de novos objetos, que podem ter um ciclo de vida curto (variáveis locais de métodos, por exemplo) e são liberados rapidamente da memória. Esta configuração ajuda a não alocar muita memória permanente, o que é muito "caro" para o Java liberar mais tarde. Um valor típico ali é 512 MB (-Xmn512m).
    -XrsUtilizado quando o GlassFish é instalado como serviço. Indica para a JVM para reter a sessão do Windows, caso o GlassFish esteja sendo executado como serviço do Windows e este parâmetro não estiver configurado, ele pode encerrar, sem registrar nenhum erro.
    -XX:+CMSParallelRemarkEnabledAumenta a performance do coletor de lixo paralelo.
    -XX:SurvivorRatio=20Indica a razão entre a área de survivor e a área de curta duração da memória. O valor recomendado é 20, desta forma a área de survivor é 1/20 da área disponível para novos objetos.
    -XX:+UseParNewGCIndica o algoritmo que o Garbage Collector do Java deve utilizar para limpar a memória de curta duração, destinada a novos objetos. Desta forma, objetos que duram pouco já são eliminados rapidamente da memória, sem consumir muito espaço.
    -XX:+UseConcMarkSweepGCIndica o algoritmo que o Garbage Collector (coletor de lixo) do Java deve utilizar para a limpeza da memória, neste caso o coletor de lixo chamado Mark Sweep.
    -XmsUtilizar o mesmo valor do parâmetro –Xmx descrito anteriormente, para melhor performance. Indica a quantidade inicial de memória alocada pelo Java. Esta chave foi adicionada manualmente no procedimento anterior
    -Dhk2.parser.timeout=300

    Parametrização necessária para casos onde possa ocorrer lentidão na comunicação. Deve ser informado para utilização de web services.

    -Dfile.encoding=ISO-8859-1Utilizado quando o GlassFish é instalado em um servidor Linux.

    Importante

    A memória alocada pelo GlassFish corresponde a soma do HEAP (-Xmx) e o PermGenSpace (-MaxPermSize). Para mais informações sobre o funcionamento da JVM em relação a memória, verifique a documentação Gerenciamento de memória em Java.

    Em Sistemas Operacionais de 32 bits, a soma dos valores dos parâmetros MaxPermSize e Xmx não pode ultrapassar 2 GB RAM, pois este é o máximo que um aplicativo 32 bits suporta.

    Particularidades por produto

  1. Selecione a chave -XX:NewRatio=2 utilize o botão Delete para removê-la;
  1. Salve as alterações nas configurações de memória (botão Save);
  1. Acesse Configurations > server-config > Thread pools > http-thread-pool:
  1. Altere o valor do campo Max Thread Pool Size, o valor deve ser a quantidade de núcleos existentes na máquina, multiplicado por 8. Por exemplo, para um servidor com 4 núcleos o valor é 32 (4 * 8), para 8 núcleos é 64 (8 * 8);
  2. Salve as alterações nas configurações de requisições (botão Save);
  3. Acesse o menu Configurations > Server-config > Network Config > Network Listeners > Http-listener-X (O "X" deve ser o http-listener que será utilizado para acessar as aplicações publicadas no GlassFish);
  4. Acesse a guia HTTP;
  5. No campo Request Timeout, informe o valor "3600". Esta configuração é necessária pois o SeniorDeployTool pode demorar mais de 15 minutos para realizar o deploy. Quando o tempo de deploy exceder o timeout, o GlassFish interrompe a requisição;
  6. Salve as alterações nas configurações de requisições (botão Save);
  7. Reinicie o GlassFish para que as configurações sejam aplicadas.

Este artigo ajudou você?