4 Replies Latest reply on Mar 17, 2016 5:56 AM by srinivasrao123neeha

    WildFly performance is poor when compare to JBoss7

    srinivasrao123neeha

      We are trying to upgrade our application from JBoss7 to WildFly. We could successfully deploy our application in WildFly and absolutely no errors in log.

      We could notice that a considerable delay while going every page.We unable to find where is the problem.

       

      Following is our technology stack in JBoss 7

       

      Spring 3.x using JPA as persistence layer

      Spring MVC

      JavaEE 6

      JDK 1.7

      hibernate 3.x

      Spring Batch 3.0.2

      log4j2

       

      When we are upgrading to WildFly following we are using

       

      Spring 4.x using JPA as persistence layer

      Spring MVC

      JavaEE 7

      JDK 1.8

      hibernate 4.x

      Spring Batch 3.0.6

      log4j2

       

      We profiled our application and there is no memory leaks in fact it is very fast in JBoss7. We are using it since more than one year.

      We could not identify problem and we spent enough time but still no luck.

       

      Any suggestions ? or whether we are missing anything ? please let us know how to proceed with further tuning.

        • 1. Re: WildFly performance is poor when compare to JBoss7
          claudio4j

          Is it wildfly 10 ?

          Can you attach your standalone.xml/domain.xml for jboss7 and wildfly ? (if domain, inform the profile name)

          Are they installed in the same machine ?

          The webserver changed from jboss7, from jbossweb to undertow.

          • 2. Re: WildFly performance is poor when compare to JBoss7
            jfclere

            Are you using https? basically jbossweb + native might be faster that wildfly/undertow.

            You change many things so it is hard to tell which component might causes the regression, is the box overloaded?

            • 3. Re: WildFly performance is poor when compare to JBoss7
              ctomc

              Well you upgraded more than just one component so it is hard to tell which part of the system gives you problems.

               

              Without knowing what your application is doing, what kind of components you use and how no one can really help you.

               

              how does the performance problem manifest? are requests taking longer to complete?

              is overall of throughput of the system under load lower?

               

              If you ware (cpu) profiling the application, you should know what part of request processing is taking the longest time, if you would share that with us what part that is, we could help you narrow it down to the component / part of the server that could cause this.

              • 4. Re: WildFly performance is poor when compare to JBoss7
                srinivasrao123neeha

                Now we could able to identify the problem.It is not because of WildFly. Spring container giving bean (using getBean() method) very slow and it is taking almost more than one second which is not acceptable

                and this is causing every request delay. Our approach is, we are identifying a bean in the Spring Container using getBean() method based on URL mapping because all of our actions are Service (request scoped)

                beans managing from single central controller


                Of course I can declare all these Service (request scoped) beans as controllers and use Spring MVC request URL mapping (the way we used for single central controller which I have mentioned) then

                also I got same behavior so I guess even I do like that Spring is using internally getBean() method (or equivalent strategy) to identify bean and to execute corresponding controller.


                When we are in Jboss7 as I said we are using Spring 3.x where with same spring context XML file we were getting bean instance very fast.At this moment I have no idea what strategy they changed

                in Spring 4.x to give a bean instance.

                 

                I also identified one more thing, we are using very long spring "appContext.xml" where we are defining and scanning everything so what I did is, I split that XML into multiple pieces like DAO, Spring Batch

                and original "appContext.xml" file where I have JNDI database connection details.Then time came down but still we did not get the way we have performance in Jboss 7.

                 

                Then I completely removed Spring batch beans in context loader when server starts up. After that I could get same behavior as Jboss7. Now my goal is how to achieve same time with Spring Batch

                beans loaded at server start up.

                 

                I know it is altogether deterrent issue not related to WildFly. Since I posted here by thinking that it is a WildFly problem, I have responsibility to give clear explanation.

                 

                Thanks for speedy response and everybody support.

                2 of 2 people found this helpful