G
Guest
hi,
i am wondering for some time now if windows 2k/xp/2003 file I/O could be
optimized.
situation:
- a single I/O operation performing sequential read or write is very fast,
probably limited by harddisk read / write speed (assuming no drive
fragmentation, I/O between two different harddisks).
- as soon as concurrently more file operations are running (on the same
drive) the overall I/O performance considerably drops! heavy harddisk seeks
can be observed.
conclusion:
- windows switches (too) fast between the concurring operations which in
turn causes hdd seeks which causes performance to break in.
open questions (assuming two competing I/O operations) :
1. how large is the buffer windows uses for file operations? stated
differently: after processing how many bytes is the other operation executed?
where is it defined?
2. is it possible to change the time / bytes how often a switch between the
operations occur?
3. could a windows driver perform I/O queue reordering (like "traffic
shaping") to reduce hdd seeks? (take into account the destination partition /
drive,...)? maybe implement some optimized caching (returning "write
successfull" to the calling function but driver waits for 100 more ms for
incoming adjacent write operations and then schedule them to run
consecutively? have priorities for operations based on user account,..?
thanks, volker.
i am wondering for some time now if windows 2k/xp/2003 file I/O could be
optimized.
situation:
- a single I/O operation performing sequential read or write is very fast,
probably limited by harddisk read / write speed (assuming no drive
fragmentation, I/O between two different harddisks).
- as soon as concurrently more file operations are running (on the same
drive) the overall I/O performance considerably drops! heavy harddisk seeks
can be observed.
conclusion:
- windows switches (too) fast between the concurring operations which in
turn causes hdd seeks which causes performance to break in.
open questions (assuming two competing I/O operations) :
1. how large is the buffer windows uses for file operations? stated
differently: after processing how many bytes is the other operation executed?
where is it defined?
2. is it possible to change the time / bytes how often a switch between the
operations occur?
3. could a windows driver perform I/O queue reordering (like "traffic
shaping") to reduce hdd seeks? (take into account the destination partition /
drive,...)? maybe implement some optimized caching (returning "write
successfull" to the calling function but driver waits for 100 more ms for
incoming adjacent write operations and then schedule them to run
consecutively? have priorities for operations based on user account,..?
thanks, volker.