initial import
This commit is contained in:
parent
e3e0eb7656
commit
e8fb7b288e
43 changed files with 14946 additions and 0 deletions
47
md/raid_penalties.md
Normal file
47
md/raid_penalties.md
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
# RAID Penalties
|
||||
|
||||
## Contents
|
||||
|
||||
- [Write Penalty](#write-penalty)
|
||||
- [Penalty Calculation](#penalty-calculation)
|
||||
- [References](#references)
|
||||
|
||||
|
||||
## Write Penalty
|
||||
|
||||
The penalty is for how we deal with the stripe (parity, etc.) where 1 means no penalty.
|
||||
|
||||
| **RAID Level** | **Write Penalty** |
|
||||
| -------------- | ----------------- |
|
||||
| 0 | 1 |
|
||||
| 1 | 2 |
|
||||
| 5 | 4 |
|
||||
| 10 | 2 |
|
||||
|
||||
|
||||
## Penalty Calculation
|
||||
|
||||
- **raw IOPS** = disk speed IOPS \* number of disks
|
||||
- **functional IOPS** = (raw IOPS \* write% / write penalty) + (raw IOPS \* read%)
|
||||
|
||||
Given 5x 15k SAS drives @ 900 IOPS (180/disk) as an average, a sample calculation for RAID-5, with varying levels of write vs read percentage:
|
||||
|
||||
```
|
||||
16% writes: (900*.16/4)+(900*.84) = 792 / 900 = 88.0% efficiency
|
||||
10% writes: (900*.10/4)+(900*.90) = 832 / 900 = 92.4% efficiency
|
||||
5% writes: (900*.05/4)+(900*.95) = 866 / 900 = 96.2% efficiency
|
||||
```
|
||||
|
||||
Reducing the write percentage from 16% to 10% would yield an efficiency gain of 4.4%, from 16% to 5% yields an 8.2% gain. Writing to RAID5 and calculating parity is very costly - we haven't even talked about linear writes vs. scattered block writes. As an exercise, if the same 5-disk RAID-5 was converted to an 8 disk RAID-10 (to achieve the same capacity for data):
|
||||
|
||||
```
|
||||
8*180 = 1440 raw IOPs
|
||||
(1440*.16/2)+(1440*.84) = 1324 / 792 = 167% efficiency
|
||||
```
|
||||
|
||||
This is all very basic math that doesn't take into account real world load and deals with theoretical maximums based on published standards. Use a tool such as `fio` to obtain real world performance.
|
||||
|
||||
|
||||
## References
|
||||
|
||||
- <http://git.kernel.dk/?p=fio.git;a=summary>
|
||||
Loading…
Add table
Add a link
Reference in a new issue