8 Replies Latest reply on Apr 2, 2010 1:09 AM by xiang yingbing

    Why jboss5.1 is so slow on solaris 10?

    xiang yingbing Master

      I read many related articles, but none of them give a solution. Those artices are:


                10 minutes is used to start the cluster.


                JBOSS really slow on Solaris 64 bit system

        • 1. Re: Why jboss5.1 is so slow on solaris 10?
          xiang yingbing Master

          my jboss's JAVA_OPTS:


          JAVA_OPTS="-Dprogram.name=run.sh -d64 -server -Xms1024m -Xmx1024m -XX:MaxPermSize=512m -XX:+UseLargePages -XX:+UseParallelGC -XX:SurvivorRatio=16 -XX:ThreadStackSize=512k -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"





          I run jboss with this command:

             /usr/bin/priocntl -e -c FX  /opt/yxiang_soft/jboss/jboss-5.1.0.GAjdk6/bin/run.sh -c all -b



          31sh-3.00# /usr/bin/priocntl -e -c FX  /opt/yxiang_soft/jboss/jboss-5.1.0.GAjdk6/bin/run.sh -c all -b


            JBoss Bootstrap Environment


            JBOSS_HOME: /opt/yxiang_soft/jboss/jboss-5.1.0.GAjdk6


            JAVA: /opt/genband/gvu/active/jdk/bin/java


            JAVA_OPTS: -Dprogram.name=run.sh -server -Xms128m -Xmx512m  -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true  -Dsun.rmi.dgc.client.gcInterval=3600000  -Dsun.rmi.dgc.server.gcInterval=3600000


            CLASSPATH:  /opt/yxiang_soft/jboss/jboss-5.1.0.GAjdk6/bin/run.jar:/opt/genband/gvu/active/jdk/lib/tools.jar




            GVU--> JAVA_OPTS: -Dprogram.name=run.sh -d64 -server  -Xms1024m -Xmx1024m -XX:MaxPermSize=512m -XX:+UseLargePages  -XX:+UseParallelGC -XX:SurvivorRatio=16 -XX:ThreadStackSize=512k  -Dorg.jboss.resolver.warning=true  -Dsun.rmi.dgc.client.gcInterval=3600000  -Dsun.rmi.dgc.server.gcInterval=3600000
          16:08:15,755 INFO  [ServerImpl] Starting JBoss (Microcontainer)...
          16:08:15,760 INFO  [ServerImpl] Release ID: JBoss [The Oracle] 5.1.0.GA  (build: SVNTag=JBoss_5_1_0_GA date=200905221634)




          From server.log, i can see that over 10 minutes are used to start clean jboss[no xxx.ear deployed].

          • 2. Re: Why jboss5.1 is so slow on solaris 10?
            xiang yingbing Master

            my solaris info:



            bash-3.00# prtdiag
            System Configuration:  Sun Microsystems  sun4v  SPARC Enterprise T2000
            Memory size: 8064 Megabytes


            ================================  Virtual CPUs  ================================


            CPU  ID Frequency Implementation         Status
            ------ ---------  ---------------------- -------
            0      1000 MHz   SUNW,UltraSPARC-T1     no-intr
            1      1000 MHz   SUNW,UltraSPARC-T1     no-intr
            2      1000 MHz   SUNW,UltraSPARC-T1     no-intr
            3      1000 MHz   SUNW,UltraSPARC-T1     no-intr
            4      1000 MHz   SUNW,UltraSPARC-T1     no-intr
            5      1000 MHz   SUNW,UltraSPARC-T1     no-intr
            6      1000 MHz   SUNW,UltraSPARC-T1     no-intr
            7      1000 MHz   SUNW,UltraSPARC-T1     no-intr
            8      1000 MHz   SUNW,UltraSPARC-T1     no-intr
            9      1000 MHz   SUNW,UltraSPARC-T1     no-intr
            10     1000 MHz   SUNW,UltraSPARC-T1     no-intr
            11     1000 MHz   SUNW,UltraSPARC-T1     no-intr
            12     1000 MHz   SUNW,UltraSPARC-T1     no-intr
            13     1000 MHz   SUNW,UltraSPARC-T1     no-intr
            14     1000 MHz   SUNW,UltraSPARC-T1     no-intr
            15     1000 MHz   SUNW,UltraSPARC-T1     on-line


            =======================  Physical Memory Configuration  ========================
            Segment  Table:
            Base           Segment  Interleave  Bank     Contains
            Address         Size     Factor      Size     Modules
            0x0            8 GB     4           2 GB     MB/CMP0/CH0/R0/D0
                                                 2 GB     MB/CMP0/CH1/R0/D0
                                                 2 GB     MB/CMP0/CH2/R0/D0
                                                 2 GB     MB/CMP0/CH3/R0/D0


            ========================= IO Configuration =========================


            Location    Type  Slot  Path                                           Name                       Model
            ----------- ----- ----  ---------------------------------------------  -------------------------  ---------
            IOBD/NET0    PCIE IOBD                 /pci@780/pci@0/pci@1/network@0     network-pciex8086,105e
            IOBD/NET1    PCIE IOBD              /pci@780/pci@0/pci@1/network@0,1      network-pciex8086,105e
            IOBD/PCIE    PCIE IOBD                     /pci@780/pci@0/pci@9/scsi@0         scsi-pciex1000,56 LSI,1064E
            IOBD/NET2    PCIE IOBD                /pci@7c0/pci@0/pci@2/network@0      network-pciex8086,105e
            IOBD/NET3    PCIE IOBD               /pci@7c0/pci@0/pci@2/network@0,1     network-pciex8086,105e
            IOBD/PCIX    PCIX IOBD                /pci@7c0/pci@0/pci@1/pci@0/isa@2                       isa
            IOBD/PCIX    PCIX IOBD                /pci@7c0/pci@0/pci@1/pci@0/usb@5       usb-pciclass,0c0310
            IOBD/PCIX    PCIX IOBD                /pci@7c0/pci@0/pci@1/pci@0/usb@6       usb-pciclass,0c0310
            IOBD/PCIX    PCIX IOBD                /pci@7c0/pci@0/pci@1/pci@0/ide@8          ide-pci10b9,5229


            ============================  Environmental Status  ============================
            Fan sensors:
            Location                           Sensor         Status
            NNL084502N:CH/FT0/FM0              RS             unknown
            NNL084502N:CH/FT0/FM1              RS             unknown
            NNL084502N:CH/FT0/FM2              RS             unknown
            NNL084502N:CH/FT2                  RS             unknown


            Temperature  sensors:
            Location                           Sensor         Status
            NNL084502N:CH/IOBD/IOB             T_CORE         unknown
            NNL084502N:CH/IOBD                 T_AMB          unknown
            NNL084502N:CH/MB/CMP0              T_TCORE        unknown
            NNL084502N:CH/MB/CMP0              T_BCORE        unknown
            NNL084502N:CH/MB                   T_AMB          unknown
            NNL084502N:CH/PDB                  T_AMB          unknown


            Current  sensors:
            Location                           Sensor         Status
            NNL084502N:CH/MB                   I_VCORE        unknown
            NNL084502N:CH/MB                   I_VMEML        unknown
            NNL084502N:CH/MB                   I_VMEMR        unknown


            Current  indicators:
            Location                           Indicator      Condition
            NNL084502N:CH/IOBD                 I_USB0         unknown
            NNL084502N:CH/IOBD                 I_USB1         unknown
            NNL084502N:CH/FIOBD                I_USB          unknown


            Voltage  sensors:
            Location                           Sensor         Status
            NNL084502N:CH/SC/BAT               V_BAT          unknown
            NNL084502N:CH/IOBD                 V_+1V5         unknown
            NNL084502N:CH/IOBD                 V_+1V8         unknown
            NNL084502N:CH/IOBD                 V_+3V3MAIN     unknown
            NNL084502N:CH/IOBD                 V_+3V3STBY     unknown
            NNL084502N:CH/IOBD                 V_+1V          unknown
            NNL084502N:CH/IOBD                 V_+1V2         unknown
            NNL084502N:CH/IOBD                 V_+5V          unknown
            NNL084502N:CH/IOBD                 V_-12V         unknown
            NNL084502N:CH/IOBD                 V_+12V         unknown
            NNL084502N:CH/MB                   V_+1V5         unknown
            NNL084502N:CH/MB                   V_VMEML        unknown
            NNL084502N:CH/MB                   V_VMEMR        unknown
            NNL084502N:CH/MB                   V_VTTL         unknown
            NNL084502N:CH/MB                   V_VTTR         unknown
            NNL084502N:CH/MB                   V_+3V3STBY     unknown
            NNL084502N:CH/MB                   V_VCORE        unknown



            • 3. Re: Why jboss5.1 is so slow on solaris 10?
              xiang yingbing Master


                          No answer!



                            JBoss 4.0.0 is slow on Solaris 8 (64bit SunFire v120) 4 min

                            I'm running solaris2.10, JDK 1.5.0_06 or 1.5.0_11 (32 bit or 64 bit), both are really slow.





              Is there something wrong with my setting?


              We can NOT do anything now:

                   we developed on windows[fast enough]. but customers need us deploy jboss on solaris 10.

              • 4. Re: Why jboss5.1 is so slow on solaris 10?
                xiang yingbing Master

                http://community.jboss.org/en/jbossas/performance is read too, but nothing is useful.



                I do as [http://www.mastertheboss.com/en/jboss-application-server/113-jboss-performance-tuning-1.html] says,

                   but jboss is still slow on solaris 10.



                Please help me. Thanks in advance.

                • 5. Re: Why jboss5.1 is so slow on solaris 10?
                  xiang yingbing Master

                  Solaris Tunable Parameters Reference Manual http://dlc.sun.com/pdf/819-2724/819-2724.pdf】


                  This file is read too, but it tells me:

                  1. It is self-adjusting to system load and demands minimal tuning. In some cases, however, tuning is necessary. [page.27]


                  2. A key consideration in system tuning is that setting system parameters (or system variables) is
                  often the least effective action that can be done to improve performance. Changing the behavior
                  of the application is generally the most effective tuning aid available.

                  ~~~~~ It would be better that jboss detect the OS then set something in run.sh or run.conf.


                  3. Adding more physical memory and balancing disk I/O patterns are also useful.

                  ~~~~~ I think my T2000 is powerful enough.




                  What should i do?

                  Any tip is appreciated. Thanks again.

                  • 6. Re: Why jboss5.1 is so slow on solaris 10?
                    xiang yingbing Master





                    Version: 5.1.0.GA  (build: SVNTag=JBoss_5_1_0_GA date=200905221635)

                    Version Name: The  Oracle

                    Built on: May  22 2009


                    Start date: Thu  Apr 01 16:47:49 CST 2010

                    Host: T2000G2  (

                    Base Location: file:/opt/yxiang_soft/jboss/jboss-5.1.0.GAjdk6/server/

                    Base Location  (local): /opt/yxiang_soft/jboss/jboss-5.1.0.GAjdk6/server

                    Running config: 'gvu'


                    JVM -  Hardware


                    #CPU: 16

                    OS: SunOS 5.10  (sparcv9)

                    JVM Environment

                    Free Memory: 453  MB

                    Max Memory: 1008  MB

                    Total Memory: 1008  MB

                    #Threads: 108

                    JVM Version: 16.0-b12  (Sun Microsystems Inc.)

                    JVM Name: Java  HotSpot(TM) 64-Bit Server VM




                    I think my T2000 is powerful enough.

                    • 8. Re: Why jboss5.1 is so slow on solaris 10?
                      xiang yingbing Master

                      It's NOT jboss's fault.


                      Below code just need 1s to run on windows, while need 13s  on soalris10(T2000).

                      soalris10(T2000) is really unfriendly to customers, should be GC-ed.



                      public class Test {
                          public static void main(String[] args){
                              long start = System.currentTimeMillis();
                              int n = 0;
                              for (long i=0;i< 1e8;i++){
                                  n ++;
                              System.out.println("time: "+(System.currentTimeMillis()-start)/1000.0);