Concurrent disk accesses slow in Windows XP

P

Pauldoo

Hi,
I have noticed very slow I/O performance in Windows XP while
performing certain tasks, and I have been able to write a small test
which reliably demonstrates the problem. I'd like to explain this
problem and ask if anyone knows a workaround or set of tweaks to
improve the situation.

I create two large files (each too large to fit in memory, so they are
not entirely cached), and attempt to read them back. When I read the
files from beginning to end, one after the other, I get certain
performance (around 35 MiB/s). When I change to reading each file in
the same way, but read both files concurrently using threads, the
performance drops to something miserable (around 1-2 MiB/s).

While running the latter test I can hear my hard disk thrash heavily,
it is clearly seeking backwards and forwards reading very little after
each seek. The same test under Linux (same hardware) results in the
parallel reads running only slightly slower than the sequential
(around 32 MiB/s total throughput), and the disk is clearly seeking
much less frequently. The same test on Mac OS X (different hardware)
has the same characteristic as Linux.

I have noticed this being a problem for real tasks. If I run any I/O
intensive operation in the background while attempting any moderate I/
O in the foreground the performance is unbearable.

My setup is Windows XP SP2 with a bog standard SATA disk and 2GiB of
RAM..

Does anyone know of any settings or tweaks I can apply to mitigate
this problem?
 
J

John of Aix

Pauldoo said:
Hi,
I have noticed very slow I/O performance in Windows XP while
performing certain tasks, and I have been able to write a small test
which reliably demonstrates the problem. I'd like to explain this
problem and ask if anyone knows a workaround or set of tweaks to
improve the situation.

I create two large files (each too large to fit in memory, so they are
not entirely cached), and attempt to read them back. When I read the
files from beginning to end, one after the other, I get certain
performance (around 35 MiB/s). When I change to reading each file in
the same way, but read both files concurrently using threads, the
performance drops to something miserable (around 1-2 MiB/s).
Does anyone know of any settings or tweaks I can apply to mitigate
this problem?

Well I suppose youi've done a defrag with something that seriously
defragments?
 
P

Pauldoo

Well I suppose youi've done a defrag with something that seriously
defragments?

Yes. The files were only slightly fragmented after first creation,
and making sure they were fully defragged made no difference.
 
B

Bob I

Pauldoo said:
Yes. The files were only slightly fragmented after first creation,
and making sure they were fully defragged made no difference.

Providing your drive isn't running in PIO mode (check the IDE in Device
manager). If you force the the hard drive to chase all over the platter
to retrieve the the data, data transfer will drop to rock bottom. You
could increase memory, use a faster harddrive, or stop setting up
conditions to ask the system to do someting it is not capable of doing.
 
P

Pauldoo

Providing your drive isn't running in PIO mode (check the IDE in Device
manager). If you force the the hard drive to chase all over the platter
to retrieve the the data, data transfer will drop to rock bottom. You
could increase memory, use a faster harddrive, or stop setting up
conditions to ask the system to do someting it is not capable of doing.

I don't have direct control over the requests sent to disk. The OS
does.

When reading two files in parallel from different threads I'd expect
the OS not thrash the disk. I'd expect it to compensate for the large
seek times of the harddisk by simply requesting more data between each
seek (just as Linux and Mac OS X do). This is not a problem in my
application, it's a problem with the braindead OS.


Is anyone familiar with any settings or tweaks I can apply to Windows
XP to make it behave more sensibly? I've noticed that Microsoft have
fixed these problems in Vista, and I wonder if the fixes are available
to XP through settings tweaks...
 
B

Blacktomb

Hi,
I have noticed veryslowI/Operformance inWindowsXPwhile
performing certain tasks, and I have been able to write a small test
which reliably demonstrates the problem. I'd like to explain this
problem and ask if anyone knows a workaround or set of tweaks to
improve the situation.

I create two large files (each too large to fit in memory, so they are
not entirely cached), and attempt to read them back. When I read the
files from beginning to end, one after the other, I get certain
performance (around 35 MiB/s). When I change to reading each file in
the same way, but read both files concurrently using threads, the
performance drops to something miserable (around 1-2 MiB/s).

While running the latter test I can hear my hard disk thrash heavily,
it is clearly seeking backwards and forwards reading very little after
each seek. The same test under Linux (same hardware) results in the
parallel reads running only slightly slower than the sequential
(around 32 MiB/s totalthroughput), and the disk is clearly seeking
much less frequently. The same test on Mac OS X (different hardware)
has the same characteristic as Linux.

I have noticed this being a problem for real tasks. If I run anyI/O
intensive operation in the background while attempting any moderateI/Oin the foreground the performance is unbearable.

My setup isWindowsXPSP2 with a bog standard SATA disk and 2GiB of
RAM..

Does anyone know of any settings or tweaks I can apply to mitigate
this problem?

Damn, I see the samething on my thinkpad x41 and older T30. it must be
linked to some service or driver but i don't know which one. In fact,
it runs perfect when it's setup, but after several weeks or months,
suddenly it goes very slow, takes 5 minutes to go to hibernation.

Last time I noticed it seems links to Nokia connectivity driver.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top