[jboss-user] [EJB 3.0] - Re: 10,000 Recorc Per Second (In EJB 3.0)
do-not-reply at jboss.com
Fri Apr 20 08:57:06 EDT 2007
Here is some information from a project I attended a couple of years ago. We operated on a Sun Starfire (Sun Enterprise 10000), totally 32 cpus and 32GB RAM, our domain had 12 cpus and 12 GB RAM. A lot has hapend since then, but still, such computers are not fast when it comes to simple things like database inserts. They are used for extreme load and may calulate a lot of complex stuff.
We hade Oracle on the starfire. On another server we had a Java program doing import stuff to the database.
In our case, on the Starfire, the application perfomed much better when using 5-10 threads than using 20 or 30 of them. (I've read about other persons complaining about how Java 1.4.x scales on multi cpu machines). Note that we used Java 1.4.x here. I don't know about how Java 1.5 or Java 1.6 behave on multi cpu machines.
When we changed the environment to a normal Compaq D180 server (the pizza box) with only 2 Intel Xeon, 1GB RAM having better clock frequency, we got much better performance. I can't remember exactly how much better, but I know we are talking about several 100 percents. We had Java on one server and Oracle on antoher server (also a pizza box, but 4GB RAM). These machines used Windows 2000 Server Std. Edition.
Then we tried to seutp Oracle on a 8 Xeon cpu Dell server 8GB RAM, with Windows 2000 Server Ent. Ed (you had to have ent. ed. to be able to use all processors and all memory). This machine had lower processor speed than the piza box. This configuration gave us worse performance compared to the 2 pizza boxes.
On all machines we were in contact with Oracle about how to setup the Oracle to get the best performance. One thing Otracle learned me, but this was version 8.1.6, was to setup the chunk size of the disks. When you raid your disks, you shall have as specific chunk size. At least on windows. You shall also have a special raid configuration. From the beginning we had raid 10, but as I can remember you shall use something else.
Best insert performance:
1. import of flat file
2. creating a stored procedure wher you sent a kind of comma separated string.
3. Java - Oracle simple sql prepared statements
4. Java - using simple statements.
What about the network between database and java. Are they running on separate machines. If not you will have a slower system.
Finally, Yes, the OCI drivers are much faster. Ther are communicating directly with the Oracle DB. The non OCI drivers are normally working with the PL/SQL in Oracle - an extra layer on top of the database.
>From Java, rember to turn off auto commit. Ds.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4039259#4039259
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4039259
More information about the jboss-user