I'm running WebLogic 6.0, JDK 1.3.1.05 and Oracle 8.1.7 on an HP L3000-5x running 11i. I have a particular process that performs inserts and updates to the database via the
java based application. The java application communicates to Oracle with a native Java driver (Oracle Thin) rather than SQL*NET.
During our import process, I implement a concept called multi-streaming. Multi-streaming is the process of running several child instances of java that each communicate to the parent Java instance (WebLogic) which is responsible for communicating to Oracle via a
JDBC connection. When we run this process (multi-streamed import), the average load time jumps from .15 to 3.15. Typically I spawn 3-6 child Java processes that each take up 15 - 25mb of RAM. The main java process has been allocated 512mb of RAM, but usually utilizes half of that at a given time. Additionally, when these processes run, the CPU% jumps from 20% to nearly 300%. Memory utilization is not even a factor.
When I run these as single streamed processes, the average load jumps from .15 to about .65 (still very high). The CPU% stays anywhere between 70% and 85%.
I've run some java utilities to profile the application. Nothing is out of the ordinary. I'm seeing no issues/dropping of methods, etc... Basically, what I'm seeing is an incredible amount of idle time, when the app should be processing data. My DBA is seeing similar characteristics on his end (he's running StatsPack)...not much data is be processes, just a lot of idle time.
It really looks like an I/O issue. CPU utilization out of 100% is steady around 96 to 98% spread across (4) processors. We should ideally see low to moderate CPU utilization. Memory utilization is low.
1. First question: what will the following parameters buy me in terms of I/O? create_fast_links and fs_asynch