디스크 IO에 사용하는 경험 법칙은 다음과 같습니다.
어레이 당 IOP뿐만 아니라 테라 바이트 당 IOP도 고려합니다. SATA + RAID6을 수행하는 경우 TB 당 IOP가 매우 나쁜 경우는 드 un니다. 소리가 너무 많이 들리지는 않지만 배열에서 '여유 공간'을 발견 한 사람이 종종 사용하게됩니다. 대부분의 엔터프라이즈 시스템에서 실제로 반대되는 경우 사람들이 깃을 구매하고 iops를 무시하는 것이 일반적입니다.
그런 다음 RAID에 대한 쓰기 비용을 추가하십시오.
- RAID1, RAID1 + 0의 경우 2
- RAID5의 경우 4 (또는 4)
- RAID6의 경우 6입니다.
쓰기 패널티는 좋은 큰 쓰기 캐시와 올바른 환경에서 부분적으로 완화 될 수 있습니다. DB 로그와 같은 순차 쓰기 IO가 많은 경우 RAID 5 및 6의 쓰기 페널티를 상당히 크게 줄일 수 있습니다. 전체 스트라이프 (예 : 스핀들 당 하나의 블록)를 작성할 수있는 경우 패리티를 계산하기 위해 읽을 필요가 없습니다.
8 + 2 RAID 6 세트를 가정하십시오. 단일 쓰기 IO의 정상 작동에서 다음을 수행해야합니다.
- '업데이트 된'블록을 읽으십시오.
- 첫 번째 패리티 블록 읽기
- 두 번째 패리티 블록 읽기
- 패리티를 다시 계산하십시오.
- 모든 3 (6 IO)을 씁니다.
캐시 된 전체 스트라이프 쓰기 (예 : RAID 스트라이프 크기의 연속 8 개의 '청크')를 사용하면 읽기없이 전체 로트에서 패리티를 계산할 수 있습니다. 따라서 10 개의 쓰기 (각 데이터에 하나씩, 두 개의 패리티) 만 필요합니다.
이렇게하면 쓰기 패널티가 1.2가됩니다.
또한 쓰기 IO는 캐시하기 쉽다는 점을 명심해야합니다. 즉각 디스크에 가져올 필요가 없습니다. 수신 시간이 평균적으로 스핀들 속도를 초과하지 않는 한 '캐시 속도'로 실행할 수있는 소프트 타임 제약 조건에서 작동합니다.
반면에 읽기 IO는 어려운 시간 제약이 있습니다. 데이터를 가져올 때까지 읽기를 완료 할 수 없습니다. 그 시점에서 읽기 캐싱 및 캐시 로딩 알고리즘이 중요해집니다. 예측 가능한 읽기 패턴 (예 : 백업에서 얻을 수있는 순차적)은 예측 및 프리 페치 될 수 있지만 임의의 읽기 패턴으로는 불가능합니다.
데이터베이스의 경우 일반적으로 다음을 가정합니다.
이 둘의 비율은 말하기 어렵다. DB의 기능에 따라 다릅니다.
임의 읽기 IO는 캐싱의 최악의 경우이므로 SSD가 실제로 자체적으로 제공되는 곳입니다. 어쨌든 거의 동일한 속도이기 때문에 많은 제조업체가 SSD 캐싱을 신경 쓰지 않습니다. 따라서 특히 임시 데이터베이스 및 인덱스와 같은 경우 SSD는 우수한 투자 수익을 제공합니다.