2 Replies Latest reply on Apr 30, 2014 12:10 PM by satyajit_ijt

    Memory issue for Camel SQL based endpoints in SwitchYard

    satyajit_ijt

      Hi,

      I am recently working with SwitchYard.

      In my application there are 30 Java bean based component and 30 Camel SQL based endpoints.

      While I am trying to start JBoss server, it is getting Out Of Memory Exception. My local machine is of 3GB memory.

      I analyzed Heap with Java Visual VM. I found there are huge number of org.switchyard.config.DomConfiguration objects (more than 117200)

      The other most instanced object is org.jboss.vsf.JavaZipFileSystem$ZipNode ( More than 98750).

      In my test server of 16 GB ram I could deploy upto 250 end points comfortably,

      I think this as a huge problem for development, performance or scalability of the application.

      Application with any other technology built on Entity Bean/Spring JDBC/Hibernate/ MyBatis will not take so much memory to run.

      Is there any way we can reduce memory foot print of the application.

       

      Thanks and Regards,

      Satyajit

        • 1. Re: Memory issue for Camel SQL based endpoints in SwitchYard
          kcbabo

          It's not really possible to provide specific advice here without seeing the application and knowing more about the environment.  Some general comments/questions:

           

          • Which version of SY and EAP are you using?
          • Is this a clean install with no other apps deployed?  Have you changed the default memory settings in EAP at all?
          • Can you attach the application you are using?  There are a wide range of things that can produce memory issues.
          • That's too many DomConfiguration objects for an application with 30 beans and bindings.  You hit this on startup or after multiple redeploys?
          • 250 endpoints in a single app is a lot!
          • 2. Re: Memory issue for Camel SQL based endpoints in SwitchYard
            satyajit_ijt

            Hi Keith,

            Thanks for your response. Here are the response of your queries.

            1)  We are using :

            JBoss server ( Red Hat JBoss Fuse Service Works 6.0.0.GA-redhat-2 (AS 7.2.1.Final-redhat-10))

            SwitchYard version 1.1.1-p5-redhat-1

            2) This is a clean install with no other app deployed. In local machine we have made  -server -Xms512m -Xmx512m -XX:MaxPermSize=256m so that we can run JbossDeveloper and JBoss server on same machine.

            3) I'll not be able to share the code but can share the heap dump of Java VisualVM

            4) I don't hit the end points. When the end points are deployed there are following log generated.  [org.switchyard.common.camel.SwitchYardCamelContext] (MSC service thread 1-3) Route: direct:{urn:com.motorola.mlm:DataServices:1.0}..........................QueryReference started and consuming from: Endpoint[direct://%7Burn:....................QueryReference]

            The out of memory exception happens during start-up only. The server can not deploy the application unless we comment some endpoint manually.

            Please let me know if you need some more information.

            I need one suggestion. What should be server configuration to serve 500 concurrent requests with rest services deployed in SwitchYard? Is there any template for capacity planning?

             

            Thanks and Regards,

            Satyajit