3 Replies Latest reply on Feb 22, 2005 7:05 AM by radl01

    JBoss benchmarking

    krish_borland

      I'm attempting to benchmark JBoss 4.0 against Borland Enterprise
      Server (BES) 6.0.

      I've been reading a couple of performance tuning articles/papers
      on JBoss. However, I've some trouble figuring out if things apply
      only to a particular 4.0 release, or a 3.2.x or a prior one.

      Let me enumerate through what I have done in 4.0, and what I
      am looking for/have missed (correct me if I am wrong):

      (1) Benchmark uses only Commit Option B in entity beans.
      This is default for JBoss 4.x (as well as BES). Will
      try commit option A at a later stage. No special entry
      needed for Commit Option B in Jboss. Clustering not
      important for this benchmark.
      (2) Jboss: Use of Instance-Per-Transaction Policy. I set
      this in "jboss.xml"

      <ejb-name>....</ejb-name>
      <local-jndi-name>....</local-jndi-name>
      <configuration-name>Instance Per Transaction CMP 2.x EntityBean</configuration-name>

      (3) Jboss: No-select-before-insert (no class name needed?) in
      "jbosscmp-jdbc.xml"

      <ejb-name>....</ejb-name>
      <entity-command name="no-select-before-insert" />

      (4) PreparedStatementCache size
      <local-tx-datasource>
      ...
      <prepared-statement-cache-size>50</prepared-statement-cache-size>
      </local-tx-datasource>
      (5) Jboss: Read-ahead strategy on find: in "jbosscmp-jdbc.xml"

      <ejb-name>...</ejb-name>
      .....
      <read-ahead>
      on-find
      </read-ahead>

      (6) cache list max

      <ejb-name>...</ejb-name>
      .....
      <list-cache-max>5000</list-cache-max>

      (7) Disabled debug in: CachedConnectionManager
      in "jbossjca-service.xml" (debug is false)

      Most/many of the above are already the default in BES, and so
      out-of-the-box performance & scalability is not really a major
      pain. My initial tests on a big multi-CPU box (single JVM)
      showed an out-of-the-box Jboss lagging behind by an order of
      magnitude, but I have the performance difference down to a
      50-100% difference now under the same JDK, identical tuning
      params, etc.

      Questions:
      ==========
      (1) Are the above accurate?
      (2) Any more perf influencing params I have missed?
      (3) Any mechanism to limit the thread pool size
      of the EJB Container?
      (4) Anymore disabling of timers/stats gathering?
      (5) SFSB passivation timeout (default?): disabling?
      (6) .... ?

      Thanks,

      -krish

        • 1. Re: JBoss benchmarking
          bill.burke

          I'm not sure how well this is documented, but in JBoss 3.2.6 there is a left-join feature that allows you to define deep prefetching when loading a bean. Check out the DTD.

          • 2. Re: JBoss benchmarking
            krish_borland

            Ok, I will try this, but of course I am assuming that
            your suggestions are valid for JBoss 4.0.x as well?

            I'm not going to try to re-benchmark the numbers
            against an older - uncertified version of JBoss (CTS).

            If the left-join feature is all I have missed, let me know.
            Alternately, take a look at Borland Enterprise Server's
            CMP 2.0 "perf" example if you think anything could be
            done to further improve performance.

            -krish

            • 3. Re: JBoss benchmarking
              radl01

              Hi krishnan,

              can you specify your test appliaction more ? I think that your test app is based on CMP because you are CMP Borland expert or i'm wrong ?

              I did a few test with BES and JBoss and you are right taht the BES is faster but in my test it was only 10 or 15 %.

              Jan