What Block Sizes and Stripe Sizes will cause performance issues using RAID5?

14,014

See, here you err....

lets say both are 64kb, what happens when I run a write operation that's only a few bytes on a section of the drive that's full?(perhaps a large sql server database)

This is not possible.

Besides the fact that NTFS actually has blocks of 4kb or more - and it is STRONLY adviced to set that to 64kb for SQL Server.

SQL Server manages 8kb pages, and always reads /Writes 8 pages as extent - 64kb.

http://msdn.microsoft.com/en-us/library/ms190969(v=sql.105).aspx

As a result, for SQL Server, there is no thing such as writing a few bytes. It will write out 64kb.

As such, for SQ LServer, it is recommended to use a 64kb NTFS node size (so the extends do not cause split IO) and obviously a multiply of 64kb Raid strize size (as enterprise edition of SQL Server loves reading ahead exteds).

For other elements things are similar - not SQL Server... it depends on the intelligence of the programmer and the patterns of access of specific software.

Share:
14,014

Related videos on Youtube

meltdownmonk
Author by

meltdownmonk

Updated on September 18, 2022

Comments

  • meltdownmonk
    meltdownmonk almost 2 years

    I'm trying to understand Block Size and Stripe Size. I realize this could apply to more configurations than just RAID5, but i am interested in RAID5 specifically, because I'd like to understand the relationship between Block Size and Stripe Size, and the sizes that will cause performance degradation and why they cause performance issues...

    What I understand so far, is that Stripe size would be the amount of space on each "column" (drive?) on the disk that belongs to a Stripe (basically a line of the same amount of space going across the drive

    So if the Stripe Size is Equal to the Block size, lets say both are 64kb, what happens when I run a write operation coming from SQL server, which would do all 64Kb at once?

    Will parity be calculated after each 64kb write?

    The Stripe is typically larger than the Block. If it's much much larger, will this have an effect on performance?

    Here is an example: I have HP Array - RAID5 configured. The Block size on my logical drive is 512 bytes, the Windows unit allocation size is 4KB, and the Stripe size is 256KB I'm in a high write environment, and the Logical Drive Acceleration is Controller Cache, enabled and is set to 100%/0% (read/write) What should I expect in terms of performance? What does this have to do with the relationships between 512 byte block size, and 256 KB strip size?

  • meltdownmonk
    meltdownmonk about 11 years
    Ok, it's becoming clearer, I feel like I need to edit the question, but i don't know what to change... and when you say Node size, did you mean Block size? is that the same thing?