0

test results

Obviously running raid0 on partitions of a single drive will result in a performance decrease; data has to be written/read multiple times to/from the same drive, and because of how it's spread the drive head has to back-track. I've performed a test, but did not get the expected results.

There is no way, to my knowledge, to configure Windows to raid0 partitions, only drives. Therefore I used a Windows XP virtual machine with 5 1GB virtual drives attached, in addition to the OS drive. These virtual drives were hosted on the same host hard drive to emulate the effects of raiding partitions on the same drive. I made them each dynamic disks, and striped them using Window's built in equivalent of Raid0. I then attached another virtual hard drive that was 5GB. Both the 5GB Raid0 array, and the 5GB drive were formatted as NTFS with a 64 kilobyte allocation size. The virtual hard drive files were set to pre-allocate their space.

Given that there are 5 virtual drives in the raid array, I would expect it to have about 20% of the performance of the non-raid drive for read-speed/write-speed except on single writes/reads, which should be near normal.

As you can see in the screenshots, the sequential reads are about as expected (17%-ish), but the write speeds are not. The write speeds are signifigantly higher than expected (33%-ish). The test results are from a 5 run series writing 4000MB of data using Crystal DiskMark. The host drive is a usb 3.0 external hard drive.

Why is the sequential write speed on the raid array better than expected?

PS: Before anyone asks what I'm attempting to achieve, I'll pre-answer that. I'm not attempting to achieve anything more than satisfaction of my curiosity; don't read into the question any more deeply than it has been written. :)

1

What you see is the combined effect of smart queuing and caching: Data is not physically written to the drive in the same order as the application writes it to the OS, but reordering and write combining allow for a much better distribution of the writes to the stripes. This is helped by the drive's internal cache.

When reading from the drive, the queueing can't really help you, but the fact that you only see a 1:5 performance reduction, where a higher penalty would be expected (With the 1:5 for the striping, the radial and rotaional latencies should overweigh the distributed reads on sequential workkloads) shows, that readahead works quite well.

  • "This is helped by the drive's internal cache". The host drive has caching disabled. – Robin Hood Oct 10 '14 at 6:38
  • Since the host drive is USB, I am very sure, that it's internal (hardware-level) cache can't be disabled - this has nothing to do with OS-level caching, which typically is disabled in VM settings (O_DIRECT access) – Eugen Rieck Oct 10 '14 at 6:51

Your Answer

By clicking "Post Your Answer", you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.