On 09.04.2010 10:39, Rajesh Datla wrote:
Hi All,
I like to know the performance utilization of
multi-processors on a machine by Derby 10.3. Does Derby 10.3 utilize
all CPU's on 8 CPU machine?.
Hi Rajesh,
I cannot give you any hard numbers for 10.3, but I have some general
comments. Hopefully someone else can pitch in with more details.
First, a fair bit of performance / scalability work has been done since
10.3. The community is in the process of preparing for the 10.6 release
[1]. I would strongly suggest you use a newer release if possible.
Further, how much of the CPU Derby can utilize depends heavliy on the
load, with factors such as:
- number of concurrent connections / queries
- data contention
- access pattern
- IO subsystem (plus read/write ratio and page cache tuning )
The Derby engine is multi-threaded and should be able to use the
available CPUs when / if required. To find out the utilization rate you
have to run a test with your app / load.
Note that a single query will only use a single CPU / core.
I have run an industry standard benchmark on a 32-core machine, and
Derby is able to utilize the CPUs fairly well with that specific load
and configuration (75+%).
I have also seen syntetic benchmarks utilizing around 99% of the CPU
(all data in memory, read only, no data contention), but I doubt you'll
manage that in a real-world app :)
And finally, Derby has to use the CPUs for something useful as well -
I'd recommend a load test to see if Derby fulfills your requirements
(then you can come back to the list and ask questions if you see
unexpected results).
Regards,
--
Kristian
[1] http://wiki.apache.org/db-derby/DerbyTenSixOneRelease
Regards
Raj