8 Replies Latest reply on Jun 1, 2009 7:00 AM by jaikiran

    First step towards performance improvement of EJB3 deploymen

    jaikiran

      We have just released the EJB3 1.0.7 plugin that can be used against JBossAS 5.1.0 CR1. Among other things, this version of the plugin has some performance fixes for EJB3 deployments https://jira.jboss.org/jira/browse/EJBTHREE-1800. Though there's still a long way to go in fixing the deployment performance completely, this is one step closer to achieving that goal.

      To use the plugin against the JBossAS-5.1.0 CR1, here's what you will have to :

      Prerequisites:
      - JBoss AS 5.1.0.CR1
      - Ant 1.7

      1) Download the plugin installer from here http://sourceforge.net/project/showfiles.php?group_id=22866&package_id=132063&release_id=682303

      2) Run

      $ java -jar jboss-ejb3-plugin-1.0.7-installer.jar /path/to/jboss-5.1.0.CR1


      This will patch the AS with the latest EJB3 jars. You can then deploy your EJB3 application and see if you can find any improvement in deployment time.

      Feel free to report any improvement or if the timing remains the same. While reporting, please provide details about your application including :

      1) Number of EJB3 beans
      2) Approximate number of methods in each bean
      3) Time it takes to deploy this single application (its recommended that you let the server start cleanly and once its started drop your application in the deploy folder so that you get an accurate timing for the deployment). If available, the time this application used to take without this new version of EJB3.
      4) Any other information which you might feel is useful.


      While posting logs or xml content or code, please remember to wrap it in a code block by using the Code button in the message editor window. Please use the Preview button to ensure that your post is correctly formatted.




        • 1. Re: First step towards performance improvement of EJB3 deplo

          I timed the new EJB3 plugin and found that it:
          1. Slightly reduces the time it takes to deploy an EAR.
          2. Almost eliminates the delay in accessing EJB's for the first time!

          I used the same test application from last time, Cinco.ear. It contains 10 EJB's, each one with 50 methods. (See http://www.jboss.org/index.html?module=bb&op=viewtopic&t=153313). Here are the new timings:

          == Deploy Cinco.ear ==

          JBoss 4.2 - 1 sec
          JBoss 5.0.1 - 13 sec
          JBoss 5.1.0.CR1 - 14 sec
          JBoss 5.1.0.CR1 + new EJB3 plugin - 11 sec

          == Initialize one EJB (http://localhost:8080/cinco/LoadBeans) ==

          JBoss 4.2 - 0 sec
          JBoss 5.0.1 - 12 sec
          JBoss 5.1.0.CR1 - 14 sec
          JBoss 5.1.0.CR1 + new EJB3 plugin - 0.2 sec


          As another data point, I also timed how long it takes to deploy one of our real EAR's:

          JBoss 4.2 - 20 sec
          JBoss 5.0.1 - 51 sec
          JBoss 5.1.0.CR1 - 45 sec
          JBoss 5.1.0.CR1 + new EJB3 plugin - 42 sec

          I don't have official timings for how long it takes to access EJB's for the first time in this application, but it appears the delay has been eliminated, same as we've seen in Cinco.ear. Thank you!

          • 2. Re: First step towards performance improvement of EJB3 deplo
            jaikiran

             

            "orenh10" wrote:

            2. Almost eliminates the delay in accessing EJB's for the first time!

            Excellent, that's exactly the major performance fix that was done in this plugin https://jira.jboss.org/jira/browse/EJBTHREE-1801

            The other deployment issues are spread across projects in the AS. So it wasn't available in this plugin. Keep a watch on the performance JIRA https://jira.jboss.org/jira/browse/EJBTHREE-1800 for more news.

            I also timed how long it takes to deploy one of our real EAR's

            Also, see this thread with the latest information http://www.jboss.org/index.html?module=bb&op=viewtopic&t=154877. As mentioned in that thread, *if its possible* please provide the real applications, so that we can fix these issues accurately.




            • 3. Re: First step towards performance improvement of EJB3 deplo
              chawax

              I applied your patch with same EAR I used for my first performance test. It contains 365 EJBs / Seam components. Deploy times are better, but still far from JBoss 4.2 performance :

              - JBoss 4.2.3 : about 1'
              - JBoss 5.0.1 : about 4'30"
              - JBoss 5.1.0.CR1 : about 5'
              - JBoss 5.1.0.CR1 + EJB3 patch : about 3'45"

              • 4. Re: First step towards performance improvement of EJB3 deplo
                jaikiran

                 

                "chawax" wrote:


                - JBoss 4.2.3 : about 1'
                - JBoss 5.0.1 : about 4'30"
                - JBoss 5.1.0.CR1 : about 5'
                - JBoss 5.1.0.CR1 + EJB3 patch : about 3'45"


                Thanks for providing these numbers. Inputs like these help in narrowing down the performance issues. The numbers show some expected improvements.

                "chawax" wrote:

                Deploy times are better, but still far from JBoss 4.2 performance :

                Given the changes to the core services in the AS, i am not sure we can get to the JBossAS-4.x timings. However, there are still some improvements that can definitely be done in the deployment timings. Some of them are already done and commited. There are some others for which there's discussions going on. The JBossAS-5.1.0 GA which is to be released, will contain a major fix which we expect will improve the deployment time noticeably for big deployments. I'll update this thread with the details when 5.1.0 GA is out.






                • 5. Re: First step towards performance improvement of EJB3 deplo
                  jaikiran

                  I forgot to mention this in my first post. Please also add details about your system configurations, including the operating system and the RAM details.

                  • 6. Re: First step towards performance improvement of EJB3 deplo
                    jaikiran

                     

                    "jaikiran" wrote:
                    The JBossAS-5.1.0 GA which is to be released, will contain a major fix which we expect will improve the deployment time noticeably for big deployments. I'll update this thread with the details when 5.1.0 GA is out.



                    JBoss AS 5.1.0 GA has been released http://www.jboss.org/index.html?module=bb&op=viewtopic&t=155922. As i mentioned, it contains a major fix (in classloading) which we expect to bring in some noticeable performance improvement in the EJB3 application deployment time (especially for big deployments). Please download the AS 5.1.0 GA and try deploying your application (you do *not* have to use the EJB3 plugin because the AS contains the right version of EJB3). Please deploy the application after the entire AS has started, to get the correct numbers. Let us know if you see any improvements.

                    • 7. Re: First step towards performance improvement of EJB3 deplo

                      There's a significant improvement! Here are the timings for JBoss 5.1.0.GA, along with the timings for previous versions for comparison.

                      == Deploy Cinco.ear ==

                      JBoss 4.2 - 1 sec
                      JBoss 5.0.1 - 13 sec
                      JBoss 5.1.0.GA - 3 sec

                      == Deploy one of our real EAR's ==

                      JBoss 4.2 - 20 sec
                      JBoss 5.0.1 - 51 sec
                      JBoss 5.1.0.GA - 30 sec

                      • 8. Re: First step towards performance improvement of EJB3 deplo
                        jaikiran

                        This is real good news :) Although 4.x numbers are still better, your numbers show that we have brought down the EJB3 deployment time significantly in AS-5.1.0.GA version. We will continue to look into other areas of improvement to try and possibly bring this down a bit more.

                        Thanks for reporting these numbers.