Why Experts Exchange?

Experts Exchange always has the answer, or at the least points me in the correct direction! It is like having another employee that is extremely experienced.

Jim Murphy
Programmer at Smart IT Solutions

When asked, what has been your best career decision?

Deciding to stick with EE.

Mohamed Asif
Technical Department Head

Being involved with EE helped me to grow personally and professionally.

Carl Webster
CTP, Sr Infrastructure Consultant
Ask ANY Question

Connect with Certified Experts to gain insight and support on specific technology challenges including:

Troubleshooting
Research
Professional Opinions
Ask a Question
Did You Know?

We've partnered with two important charities to provide clean water and computer science education to those who need it most. READ MORE

troubleshooting Question

Why doesn't my Windows database application run faster? How to improve Windows system cache performance?

Avatar of Staudte
StaudteFlag for Germany asked on
DatabasesWindows Server 2008Windows 7
6 Comments1 Solution1075 ViewsLast Modified:
Hi , fellow experts,

I have a Windows 2008 R2 server system (i7-3930K hexa-core CPU, 16 GB RAM, 2x 300GB 10k SATA drives in Windows-RAID1) that runs a software named TurboMed. TurboMed uses a FastObjects database server, that runs on the same machine. (Both are 32bit apps.) I tell TurboMed to process a rather long textfile and import it into the database. That import process takes a long time (hours).

I would like to understand WHY this takes so long. I checked task manager and resource monitor and don't see any subsystem of the server that is fully loaded and busy. CPU is idling around at ~3%, only about 2.5 GB of RAM is used, the database itself should be fully in the system cache, the harddisk is chirping away at 0.5-1 MByte/s, LAN is idle (actually unplugged). I just don't see any bottlenecks... (well, I do see that one of the 12 virtual CPUs is somewhat busy and loaded about 50% on average, +/- 20%.)

In theory, shouldn't the system just run as fast as it can until at least one of the subsystems is fully saturated, e.g. a cpu core (or Hyper-Thread) is constantly at 100% (on the assumption that the program, e.g. the FastObject server is single-threaded)? However, I do see that FastObject server runs 29 threads, and TurboMed runs 31 threads...

Could someone please enlighten me and explain why the app isn't working any faster? (Please reply only with a qualified answer. If you just guess and don't know than don't reply.)

I'm attaching a couple of screen dumps from the resource monitor - it's in German, but I assume that you can identify the important columns easily.

Thanks a lot for your support,
Thomas


EDIT: As a test I have created a 8GB RAMdisk and have moved the entire TurboMed directory and the file to be imported to the RAMdisk. The process is now much faster, I would guess at least 5 times. CPU 0 is now used quite a bit more (around 80-95% average). The harddisk is not accessed anymore - which is expected.

Now the question must be rephrased somewhat: I would assume that with plenty of RAM Windows should keep the entire TurboMed database and the file to be imported in the system cache and should consequently perform the same as with a RAMdisk. Why doesn't it do that? Why is it still accessing the harddisk and how could I have seen that the harddisk is apparently the bottleneck?

Resource Monitor ScreendumpResource Monitor ScreendumpResource Monitor ScreendumpResource Monitor Screendump
ASKER CERTIFIED SOLUTION
Avatar of Jackie Man
Commented:
This problem has been solved!
Unlock 1 Answer and 6 Comments.
See Answers