vslo

Distinguished
Oct 9, 2009
61
0
18,630
Sup guys,
Could anyone explain me the big differences between the strips?
I heard that 32k is good for openning little files etc...makes the OS faster, but after a while its performances goes down, and at 128k is good for gaming and stuff but makes the OS go slower.
so? what should I go for? 32, 64, 128? I want to plays games but I need a faster OS too!
ps: I will be using w7 beta
 
Solution
During the period i did some heavy performance testing with software RAID, i did many tests with the stripesize. Generally, you want the stripesize to be as high as possible, to allow one I/O requests to be handled by one drive; and one drive only!

Often the operating system reads chunks of 64KiB - 128KiB. With a stripe misalignment, even with a 128KiB stripesize this would cause some I/O to be spread over two disks. So two disks have to work on one I/O request.

It's much faster if you can make sure that in all/most cases, only ONE disk is involved in a single I/O request, so the other disks can work on another I/O request at the same time if there are enough queued I/O's. Theoretically, this is why RAID0 should scale 100% in terms of...
Judging from the posts I've seen, the stripe size doesn't make that much of a difference for general desktop use. It may be worth experimenting if you're running something specific that's disk intensive (SQL Server comes to mind), but otherwise I don't think I'd loose any sleep over it.
 

sub mesa

Distinguished
During the period i did some heavy performance testing with software RAID, i did many tests with the stripesize. Generally, you want the stripesize to be as high as possible, to allow one I/O requests to be handled by one drive; and one drive only!

Often the operating system reads chunks of 64KiB - 128KiB. With a stripe misalignment, even with a 128KiB stripesize this would cause some I/O to be spread over two disks. So two disks have to work on one I/O request.

It's much faster if you can make sure that in all/most cases, only ONE disk is involved in a single I/O request, so the other disks can work on another I/O request at the same time if there are enough queued I/O's. Theoretically, this is why RAID0 should scale 100% in terms of random IOps in RAID0. But the scaling is not 100% because:

1) the I/O is not perfectly evenly divided between all RAID disk members, but instead some disks are more often used than others. This issue is not present with RAID1, since all disk members have exact the same information, so the RAID engine has all the freedom to use any of the three disks, unlike RAID0 where a piece of data is stored on one disk only so the RAID engine has no freedom.

2) because of stripe misalignment and a too low stripesize, one I/O request will involve multiple disks; causing the parallel processing potential to sink to the bottom of the ocean. :)

There is no real reason to set a stripesize to lower than 128KiB, or even to a higher number like 1 or 4 MiB, with the exception of bad RAID drivers that 'optimize' in a very dirty way for sequential transfers by ALWAYS reading the full stripe block even if only a fraction was requested. This is very bad for random IOps performance.

Here's a graph of the stripesize plotted against random I/O performance:
plot_004.gif
 
Solution

sub mesa

Distinguished
There is no real reason to set a stripesize to lower than 128KiB, or even to a higher number like 1 or 4 MiB
That was poorly stated of me, i meant to say:

There is no real reason to set a stripesize to a value lower than 128KiB. There should also be no harm in setting it even higher, like 1 or 4MiB. With such high stripesizes, the operating system has to use more agressive read-ahead to still get the full sequential speeds (MB/s). In Windows this is problematic. In Linux/BSD its just setting the read_max value to a higher value.

So with some tuning you can get both MAX random I/O performance and MAX sequential performance. The sequential performance is easy because everyone looks at that and many manufacturers make sure their product has high MB/s value. But optimizing for Random I/O is just as smart, and its alot more valuable IMO.
 

sub mesa

Distinguished
Note that these performance statistics depend on the quality of your RAID engine (the driver or the firmware if its hardware RAID). Since most onboard RAID is badly optimized for sequential transfers, setting a high stripesize might yield lower performance in some cases. It shouldn't if you're using a good RAID engine though. But on Windows that's pretty much the exception instead of the rule.
 

vslo

Distinguished
Oct 9, 2009
61
0
18,630
what u mean : But on Windows that's pretty much the exception instead of the rule. ?
I am planning on using no drives since w7 already recognizes the drivers, my mobo is a biosatar x58A.

do you think I should download a driver such intel matrix and usb flash it?
 

sub mesa

Distinguished
Windows 7 has some drivers already shipped with windows, so you don't need to install them separately; but you are using drivers without them no RAID.

Generally, the quality of RAID drivers on Windows just sucks. But Intel is one of the few exceptions which offer decent performance under RAID5. It still lacks in some areas though, but its not as bad as the others (ATi/nVidia/JMicron/Silicon Image/Promise).
 

sub mesa

Distinguished
If you want max performance, i recommend you to not use Windows at all.

However, that's pretty extreme, and more likely you'll be interested in how to get the maximum performance possible under Windows.

Windows 7 is already much better than Windows XP for RAID; because Windows 7 creates partitions in a different way thats better and faster for RAID arrays. Complemented by Intel ICHxR RAID drivers (the Intel MatrixRAID as its called) you pretty much have the best onboard RAID windows config possible.

With the Intel drivers you have the option to enable 'write caching' - a dangerous option but very beneficial to (writing) performance. If you have a good backup or the data on the system drive is not that valuable, you may opt to enable this Write Caching option. The danger is that if your windows crashes or you have a power interruption, there is a chance you can't boot into Windows.

If you just want great performance without having to deal with all these issues, just buy an Intel X25-M SSD and that solves pretty much all problems in one blow.
 

sub mesa

Distinguished
I don't know for sure, but i assume they just have the Intel drivers integrated. The issue here may be that the version integrated into Windows is somewhat old and newer versions may be available that fix some issues or add performance/features/reliability.

But if you install Windows 7, then download the latest Intel drviers for your RAID and install them, then reboot, it should work and you'll have the latest version. However, since Windows 7 is not even released yet (afaik) the integrated driver version won't be really old.

But yes it should be the same drivers as you download from the intel website, maybe without the management utilities.