i finally upgraded from JBoss 4.0.2 to JBoss 4.2.3. Unfortunately i noticed that the performance of my application decreased significantly. When i test my application on the same hardware, same VM, ... it can create about 850 database rows per second when using JBoss 4.0.2 and only about 400 per second when using JBoss 4.2.3.
The application contains a servlet that takes requests (to create data) in the database and stores these requests (over a stateless session EJB) on a JBoss Messaging Queue. The requests will be read from that queue by a message driven bean which will create the data in the database. Under JBoss 4.0.2 the application creates about twice as much rows per second compared to JBoss 4.2.3. The application uses Hibernate, no EJB 3. The CPU usage and memory usage of the java (jboss) and mysqld processes is much higher for a similar load under JBoss 4.2.3.
Does anybody have any idea why this is happening?
I'm using Dell PowerEdge R610 servers with Fedora Core 11 (64 bit), Sun's JRE 1.6.0_16 and a MySQL Cluster database (5.1.37 - 7.0.8a). Under JBoss 4.0.2 i'm using JBoss Messaging 1.2.0 and under JBoss 4.2.3 i'm using JBoss Messaging 1.4.5.
I would give JBoss 5.1 a try but i'm stuck with the problem described in this post: https://forum.hibernate.org/viewtopic.php?f=1&t=999881&view=next.
With kind regards,
I got my application working under JBoss 5.1.0. The test with a load of 100 requests per second already failed (java.lang.OutOfMemoryError: PermGen space).
I didn't tune JBoss, that could make a difference but probably not a very big one.
Aren't there any performance testing results available which could give an idea of which throughput could be expected of a certain type of application deployed under JBoss?
It is difficult to give general number of expected throughput. It depends on your application, what it is, how it is built, the system on which it runs, how everything is configured etc.
In your case, you definitely need to increase the permgen space. This should remain stable once all parts of your application have run at least once (as long as you don't redeploy).
i'm not really asking for a general throughput number. I assume (hope) that JBoss does some performance testing when releasing a new version. Are the results of these tests available? The test result could describe how the application is build, on which hardware it was executed, how everything was configured,... At least there would be something to compare.
Of course i can increase the permgen space. But why is this occurring this fast in JBoss 5.1.0 and not in 4.2.3 or 4.0.2? And why is performance decreasing so significantly when using an newer version of JBoss?
With kind regards,
To improve the performance of 4.2 and 5.1 you should look into the wiki pages for tuning and sliming.
With a new JBoss version you might have unused new features that can be deactivated.
Also a 'highly recommended change' see http://community.jboss.org/message/555231#555231
The wiki can be found here: