JBossHAJNDIPerformance

Version 5

    HA-JNDI Performance Measurements

    The Cluster Benchmark Harness can be used to measure performance for HA-JNDI lookups.  The harness provides the following test targets that are relevant to HA-JNDI performance: "run_jndi_test" and "run_habinding_test".

     

    run_jndi_test

     

    This test deploys an EJB on two servers.  It then performs a lookup of the EJB from a separate (not in process) client.  The test is designed to compare lookups of an EJB using the local naming server on port 1099 vs. lookups using HA-JNDI on ports 1100 and 1200.  Note that EJB's are bound locally so an HA-JNDI lookup for an EJB will always fail initially and then execute additional logic to locate the binding.  The test measures the time to instantiate a client class, instantiate an initial context, and perform the lookup.

     

    JNDI EJB lookup using local naming server (e.g., port 1099) - 43 ms per lookup

     

    JNDI EJB lookup using HA-JNDI (JBossAS version 4.x implementation) - 49 ms per lookup

     

    JNDI EJB lookup using HA-JNDI (JBossAS version 5.x implementation) - 50 ms per lookup

     

    JNDI EJB lookup using HA-JNDI RPC (JBossAS version 4.x implementation) - 78 ms per lookup 

     

    JNDI EJB lookup using HA-JNDI RPC (JBossAS version 5.x implementation) - 75 ms per lookup 

     

    due to load balancing in the HA-JNDI proxy, only half the lookups use RPC in the RPC test

     

     

    run_habinding_test

     

    This test binds a simple object and then performs a lookup on it.  The object is bound using the same provider url as the lookup so the lookup will always succeed on  the first try.  The test is designed to compare the 4.x and 5.x HA-JNDI implementations but can also be used to measure lookup performance for locally bound objects.  The test measures the time to instantiate a client class, instantiate an initial context, and perform the lookup.

     

    JNDI EJB lookup using local naming server (e.g., port 1099) - 23 ms per lookup

     

    JNDI EJB lookup using HA-JNDI (JBossAS version 4.x implementation) - 32 ms per lookup

     

    JNDI EJB lookup using HA-JNDI (JBossAS version 5.x implementation) - 33 ms per lookup

     

     

    note

     

    The cluster benchmark test results are highly dependent on the number of threads used in a test.  The results cited here were obtained by performing 1000 test executions on each of 10 threads.  The results are quite different if the same test is run 10,000 times on a single thread.  For example, executions of the "run_jndi_test" average about 50 ms each when 10 threads are used but the average is less than 10 ms when a single thread is used.  The overall elapsed time to execute the 10,000 tests is about 50 seconds in each case but threading affects individual test results.