6 Replies Latest reply on Aug 22, 2017 9:25 AM by filippe.spolti

    Wildfly 8 Fazendo Undeploy dos pacotes

    adriano.baptistella

      Olá pessoal,

      Temos um Wildfly 8.2.0 rodando em ubuntu na locaweb. A configuração da máquina é de 4GB, 2CPU.

       

      Ocorre em nosso ambiente frequentemente quedas, estas quedas ainda não conseguimos identificar a sua razão.

      No log do Wildfly temos que os pacotes um a um são feitos undeploy. O Administrador do Wildfly permanece acessível e os pacotes mostram estar ativos. Porém não respondem.

       

      Neste cenário precisamos parar o Wildfly e ligar novamente através dos comandos stop e start.

       

      aqui o trecho de log do Wildfly:

      Neste ponto os pacotes estão sendo desabilitados pelo Jboss um a um e começo a ter problemas nas chamadas.

      2017-08-20 09:22:08,451 ERROR [io.undertow.request] (default task-19) Undertow request failed HttpServerExchange{ POST /s1-fcd-10010001/bs/menuService/adquirir}: java.lang.NullPointerException

      at io.undertow.servlet.spec.ServletInputStreamImpl.readIntoBuffer(ServletInputStreamImpl.java:171)

      at io.undertow.servlet.spec.ServletInputStreamImpl.close(ServletInputStreamImpl.java:245)

      at io.undertow.servlet.spec.HttpServletRequestImpl.closeAndDrainRequest(HttpServletRequestImpl.java:602)

      at io.undertow.servlet.core.ServletBlockingHttpExchange.close(ServletBlockingHttpExchange.java:87)

      at io.undertow.server.HttpServerExchange.endExchange(HttpServerExchange.java:1444)

      at io.undertow.server.Connectors.executeRootHandler(Connectors.java:213)

      at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:759)

      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_20]

      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_20]

      at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_20]

       

       

      2017-08-20 09:22:12,287 SEVERE [com.sysmo.fcd.interceptador.ExceptionRestHandler] (default task-1) Ocorreu um erro n?o tratado pelo sistema: Unable to invoke request

       

      Configuração JVM:

      JAVA_OPTS="-Xms3G -Xmx3G -XX:MetaspaceSize=1G -XX:MaxMetaspaceSize=3G -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:ParallelGCThreads=20 -XX:ConcGCThreads=5 -XX:InitiatingHeapOccupancyPercent=70 -XX:NewRatio=2 -Djava.net.preferIPv4Stack=true"

       

      Atualmente não tenho redundância nem ação contra falhas.

       

      Qualquer auxilio ou verificação a fazer é bem vinda.

        • 1. Re: Wildfly 8 Fazendo Undeploy dos pacotes
          filippe.spolti

          Olá Adriano.

          ACredito que os logs acima não são a cauza raíz do problema.

          Com um log completo acredito que seria mais fácil encontrar algo.

           

          Em relação as mensagens que você enviou,

          ocorre um null pointer no seu servlet OST /s1-fcd-10010001/bs/menuService/adquirir

           

          E aqui: com.sysmo.fcd.interceptador.ExceptionRestHandle você está suprimindo a mensagem completa de erro, se conseguir alterar para e.printStackTrace() seria bacana porque aí conseguríamos encontrar a linha onde o erro está acontecendo.

          • 2. Re: Wildfly 8 Fazendo Undeploy dos pacotes
            adriano.baptistella

            Aqui esta o log completo: https://drive.google.com/file/d/0B3D9iSVUBFO7amF2TU5BUU5TYnc/view?usp=sharing

             

            Ainda não encontrei indicações que o o erro seja do servidor Wildfly ou de uma configuração. Pode esta acontecendo de ter um consumo excessivo de recursos e os pacotes serem desabilitados como própria ação do Wildfly?filippe.spolti

            • 3. Re: Wildfly 8 Fazendo Undeploy dos pacotes
              filippe.spolti

              Estou suspeitando de que seja o OOM Killer do linux.

               

              linux - How the OOM killer decides which process to kill first? - Unix & Linux Stack Exchange

               

              Outro ponto, como você chegou nesses valores  -Xms2560m -Xmx2560m -XX:MetaspaceSize=1G -XX:MaxMetaspaceSize=2560m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:ParallelGCThreads=20 -XX:ConcGCThreads=5 -XX:InitiatingHeapOccupancyPercent=70 -XX:NewRatio=2 ?

               

              O G1GC é recomendado para heaps grandes, 6gb ou mais.

              Já tentou algo do tipo:

              -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:+ScavengeBeforeFullGC -XX:+CMSScavengeBeforeRemark ?

               

              E se você faz deploy do sem reiniciar o wildfly use esta conf tbm: -XX:+CMSClassUnloadingEnabled

               

              Outra coisa importante de se analizar é abrir a JConsole e observar o consumo de memória, quais são as classes mais comuns (aqui vc pode ver se tem alguma classe causando memory leak por exemplo)

              • 4. Re: Wildfly 8 Fazendo Undeploy dos pacotes
                adriano.baptistella

                Minhas configurações são:

                > cat /proc/sys/vm/panic_on_oom
                0
                > cat /proc/sys/vm/oom_kill_allocating_task
                0
                > cat /proc/sys/vm/overcommit_memory
                1

                 

                Sobre como cheguei as dados de XMS e XMX foi buscas sobre a configuração recomendada. Claro que precisaria avaliar o meu caso. Iniciar pequeno e ajustar.

                Com relação aos parametros abaixo mencionados adicionei na configuração e subi novamente com estas conf.

                Sim faço deploy sem reiniciar o servidor de aplicação e não fazia uso da conf -XX:+CMSClassUnloadingEnabled

                 

                Apliquei as configurações e vou aguardar como o sistema responde.

                Obrigado Felippe.

                • 5. Re: Wildfly 8 Fazendo Undeploy dos pacotes
                  adriano.baptistella

                  filippe.spolti qual a possibilidade de analisar/consultoria nossa estrutura e nos ajudar nestas configurações? talvez colocando um loadbalance também...

                  • 6. Re: Wildfly 8 Fazendo Undeploy dos pacotes
                    filippe.spolti

                    Não posso prestar consultorias.

                    Tente entrar em contato com o pessoal de vendas da Red Hat, você pode contratar uma consultoria ou até mesmo adquirir uma subscrição do JBoss EAP, que lhe dará direito ao uso e ao suporte especializado.
                    Segue: Contact sales
                    Se preferir, no final da página tem os telefones para contato.