Há momentos em que a utilização do Fusion possa vir a sobrecarregar os recursos (processamento/memória) da máquina do servidor. Esse fato pode ocasionar instabilidades, lentidões ou travamento na aplicação Fusion. Nesses casos é possível executar alguns procedimentos.
O diagnóstico para instabilidades no ambiente pode ser acompanhado por:
• Gerenciador de Tarefas do Windows, para o uso do hardware.
• Java Missing Control (JMC), para o uso da aplicação.
Gerenciador de Tarefas do Windows
Com essa ferramenta é possível gerenciar e/ou monitorar o desempenho da máquina, sendo eles: CPU, memória, disco. Além disso, com ela é possível identificar qual é o processo que está consumindo mais CPU ou Memória, isto é, se é o processo do Apache Tomcat, ou do banco de dados, ou de outra aplicação.
Java Missing Control (JMC)
Por sua vez, o Java Missing Control possibilita gerenciar e/ou monitorar a aplicação do Fusion. Dessa forma é possível identificar qual é o processo ou atividade que o Fusion está executando, seja uma thread de envio de e-mail, OCR de documentos, compressão HTTP, agendador de tarefas, indexador, dentre outros. Pode ocorrer de haver threads bloqueadas ou falta de liberação de memória do OLD_GEN no Java.
O Java Missing Control, no entanto, requer uma configuração no Apache Tomcat. Para fazer a configuração do JMC para monitoramento da aplicação de produção deve-se seguir o procedimento de instalação abaixo:
1) Acessar a pasta de instalação do Apache Tomcat > bin;
2) Executar o Tomcatw.exe;
3) Adicionar os parâmetros em Java > Java Options;
4) Reiniciar o serviço do Apache Tomcat.
Parâmetros:
-Dcom.sun.management.jdp.name=Fusion
-Dcom.sun.management.jmxremote.autodiscovery=true
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8089
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
Configuração de memória do Apache Tomcat
Configuração de memória mínima e memória máxima
Essa configuração de memória é feita na instalação do Fusion. Todavia, pode-se alterá-la quando desejar/precisar. Por isso, feita a análise do desempenho da máquina do servidor por meio do Gerenciador de Tarefas, caso haja memória disponível é possível aumentar a memória máxima com o objetivo de melhorar a performance.
1) Acessar a pasta de instalação do Apache Tomcat > bin;
2) Executar o Tomcatw.exe;
3) Aumentar o valor do campo Maximum memory pool. Esse valor é equivalente à quantidade de memória máxima (em MegaBytes) reservada ao processo do Apache Tomcat;
4) Reiniciar o serviço do Apache Tomcat.
Otimização de memória do Apache Tomcat
O GarbageCollector (padrão do Tomcat versão 8.5) visa recuperar uma área de memória alocada, porém inutilizada. Contudo, foi identificada uma demora significativa no tempo que esse collector leva para liberar a memória alocada e que não está mais em uso (área de memória OLD GEN). Em alguns ambientes mais críticos esse fato ocasiona lentidão e parada da aplicação.
Alguns testes foram aplicados ao Tomcat 8.5 utilizando o Fusion 3.2.3.x. Com isso foram aplicadas algumas configurações ao Tomcat 8.5 com o objetivo de fazê-lo utilizar o G1C1 (configurações já utilizadas em nossos servidores).
Os procedimentos para aplicar essa configuração são os mesmos que a configuração do JMC.
1) Acessar a pasta de instalação do Apache Tomcat > bin;
2) Executar o Tomcatw.exe;
3) Adicionar os parâmetros em Java > Java Options;
4) Reiniciar o serviço do Apache Tomcat.
Parâmetros:
-XX:+UseG1GC
-XX:SurvivorRatio=3
-XX:NewRatio=2
-XX:MaxTenuringThreshold=15
-XX:-UseAdaptiveSizePolicy
-XX:G1HeapRegionSize=32m
-XX:+UnlockDiagnosticVMOptions
-XX:+UnlockCommercialFeatures
-XX:+FlightRecorder