스트라이프 크기를 최적화하는 아이디어는이를 최적화하여 일반적인 워크로드에서 대부분의 읽기 요청을 단일 읽기로 수행 할 수 있고 모든 데이터 디스크에 균등하게 분배하는 것입니다. 3 개의 디스크 RAID-5 세트의 경우 데이터 디스크의 양은 2입니다.
예를 들어 일반적인 워크로드가 평균 128kB 인 I / O 읽기 요청을 가정합니다. 디스크 RAID-5가 3 개인 경우 64kB의 청크를 만들려고합니다. 다음과 같이 계산하십시오.
avg request size / number of data disks = chunk size
128kB / 2 = 64kB
이것은 RAID 세트 의 청크 크기이며 아직 파일 시스템을 수행하지 못했습니다.
다음 단계는 파일 시스템이 RAID 세트의 특성과 일치하는지 확인하는 것입니다. 따라서 파일 시스템이 RAID 세트의 청크 크기를 인식하도록하려고합니다. 그런 다음 3 개의 디스크에 수퍼 블록을 균등하게 분배 할 수 있습니다.
이를 위해 mke2fs에 청크의 크기 또는 더 정확하게 청크에 맞는 파일 시스템 블록 수를 알려야합니다. 이를 파일 시스템의 '스트라이드'라고합니다.
chunk size / size of filesystem block = stride size
64kB / 4kB = 16
그런 다음 -E stride = 16 옵션을 사용하여 mke2fs를 호출 할 수 있습니다.
페이지 이전에도 언급은 mke2fs를위한 -E 스트라이프 폭 옵션에 대해 이야기하지만, 나 자신 있음을 사용한 적이 없으며, mke2fs를 그것을 언급의 내 버전의 맨 않습니다. 우리가 그것을 사용하고 싶다면 32와 같이 사용합니다. 스트라이프 폭은 스트라이드에 데이터 디스크의 양 (귀하의 경우 2)을 곱하여 계산됩니다.
이제이 문제의 핵심 : 최적의 청크 크기는 무엇입니까? 위에서 설명한 것처럼 I / O 읽기 요청의 평균 크기가 필요합니다. iostat 또는 sar의 출력에서 적절한 열을 확인하여이 값을 얻을 수 있습니다. 장기간에 걸쳐 구성중인 시스템과 비슷한 워크로드가있는 시스템에서이를 수행해야합니다.
섹터, 킬로바이트, 바이트 또는 블록과 같이 값이 사용하는 단위 종류를 알고 있어야합니다.