6.2. 분석
스토리지 스택 성능을 성공적으로 튜닝하려면 기본 적인 스토리지 관련 지식과 다양한 워크로드에 따른 실행 방법, 시스템을 통해 데이터가 이동하는 방법에 대해 이해하고 있어야 합니다. 또한 튜닝되는 실제 워크로드에 대한 이해도 필요합니다.
새로운 시스템을 도입할 때 마다 스토리지를 상향식으로 프로파일링하는 것이 좋습니다. 원 LUN 또는 디스크로 시작하여 성능을 직접 I/O (커널의 페이지 캐시를 우회하는 I/O)를 사용하여 평가합니다. 이는 실행할 수 있는 테스트 중 가장 기본적인 것으로 스택에서 I/O 성능을 측정할 때 기준이 되는 것입니다. 다양한 I/O 크기 및 큐 깊이에 걸쳐 연속 및 임의 읽기 및 쓰기를 수행하는 기본적인 워크로드 생성기 (예: aio-stress)로 시작합니다.
다음은 aio-stress 실행 그래프입니다. 각각 연속 쓰기, 연속 읽기, 임의 쓰기, 임의 읽기의 네 단계를 수행합니다. 이 예제에서 도구는 여러 레코드 크기 (x 축)와 큐 깊이 (그래프 당 하나)의 범위에 걸쳐 실행되도록 설정되어 있습니다. 큐 깊이는 주어진 시점에서 진행 중인 총 I/O 작업 수를 나타냅니다.
그림 6.1. 1 스레드, 1 파일 용 aio-stress 출력
왼쪽 하단 코너에서 오른쪽 상단 까지 처리량 선 기울기에 유의합니다. 주어진 레코드 크기의 경우 진행 중인 I/O 수를 늘려 스토리지에서 더 많은 처리량을 얻을 수 있음에 유의합니다.
이러한 스토리지에서 이러한 간단한 작업을 실행하여 부하에서 스토리지가 수행하는 방법을 이해할 수 있습니다. 이러한 테스트에서 생성된 데이터를 저장하여 보다 복잡한 워크로드를 분석할 때 비교합니다.
장치 매퍼 또는 md를 사용하는 경우 해당 레이어를 추가하고 테스트를 반복합니다. 성능이 크게 저하될 경우 설명할 수 있는 것인지 또는 예상된 것인지를 확인합니다. 예를 들어 스택에 체크섬 RAID 계층이 추가된 경우 성능 저하가 예상됩니다. 의외의 성능 저하는 잘못 조정된 I/O 작업에 의해 발생할 수 있습니다. 기본적으로 Red Hat Enterprise Linux는 파티션 및 장치 매퍼 메타 데이터를 최적으로 조정합니다. 그러나 모든 유형의 스토리지가 최적의 튜닝 상태를 보고하지는 않으므로 수동으로 튜닝해야 하는 경우도 있습니다.
장치 매퍼 또는 md 레이어를 추가한 후 블록 장치에 파일 시스템을 추가하고 직접 I/O를 사용하여 이에 대한 테스트를 수행합니다. 테스트 결과를 테스트 이전의 것과 비교하여 일치하지 않는 부분을 이해하고 있는지 확인합니다. 직접 쓰기 I/O는 일반적으로 사전 할당 파일에서 성능이 더 나으므로 성능 테스트 전에 파일을 미리 할당하도록 합니다.
유용한 합성 워크로드 생성기는 다음과 같습니다:
- aio-stress
- iozone
- fio