PowerEdge: Linux에서 PERC 컨트롤러 뒤에 있는 NVMe 드라이브의 소규모 I/O 성능 최적화
Summary: Linux에서 PERC(PowerEdge RAID Controller) 뒤에 연결된 NVMe 드라이브는 소규모 I/O 워크로드 테스트 중에 예상보다 낮은 성능을 보일 수 있습니다. 이는 OS가 이러한 드라이브를 기본 NVMe 디바이스(/dev/nvmeXnX)가 아닌 표준 SCSI 블록 디바이스(/dev/sdX)로 식별하기 때문에 발생합니다. 이 ID로 인해 최적이 아닌 기본 I/O 스케줄러가 적용됩니다. ...
This article applies to
This article does not apply to
This article is not tied to any specific product.
Not all product versions are identified in this article.
Instructions
근본 원인
- 기본 NVMe: 직접 연결된 NVMe 드라이브는 하드웨어 관리 방식의 심층적인 명령 대기열을 사용합니다. Linux는 OS 수준 병목 현상을 우회하기 위해 스케줄러를 기본적으로 none으로 설정합니다.
- PERC 뒤의 NVMe: 드라이브는 PERC 컨트롤러에 의해 관리되는 경우 SCSI 장치로 표시됩니다. 대부분의 Linux 배포판은 SCSI 디바이스에 대한 스케줄러를 기본값으로 사용하여 다음을 수행합니다.
mq-deadline. - 갈등: 이
mq-deadlineScheduler는 탐색 시간을 최적화하고 헤드 이동을 최소화하기 위해 레거시 기계식 드라이브용으로 설계되었습니다. 고속 NVMe 드라이브의 경우 이 스케줄러는 불필요한 레이턴시와 CPU 오버헤드를 추가하여 총 IOPS를 제한합니다.
검증 및 즉각적인 조정
작은 I/O 워크로드에 대해 최대 IOPS를 달성하려면 스케줄러를 없음 으로 설정해야 합니다.
- 현재 스케줄러를 확인합니다.
- 슈퍼 유저로 다음 명령을 실행합니다(sdX>를 sda>와 같은 <디바이스 이름으로 대체<).
cat /sys/block/{sdX}/queue/scheduler
예시 출력: (대괄호는 활성 스케줄러를 나타냅니다.)
- 다음 명령을 사용하여 스케줄러를 없음(런타임)으로 변경하여 변경 사항을 즉시 적용합니다.
echo "none" > /sys/block/{sdX}/queue/scheduler
지속성 보장
위의 수동 변경은 지속적이지 않으며 재부팅 후 되돌려집니다. 또한 /dev/sdX 드라이브가 추가되거나 제거되면 식별자가 변경될 수 있습니다. 이 변경 사항을 영구적으로 적용하려면 디바이스의 WWID를 기반으로 UDEV 규칙을 생성하는 것이 좋습니다.
참고: 큰 I/O 성능도 영향을 받을 수 있습니다. PERC 컨트롤러 뒤에 있는 NVMe 드라이브의 경우 Linux 대기열 스케줄러를 없음으로 설정하는 것이 좋습니다.
Affected Products
PowerEdge R470, PowerEdge R570, PowerEdge R670, PowerEdge R6715, PowerEdge R6725, PowerEdge R770, PowerEdge R770AP, PowerEdge R7715, PowerEdge R7725, PowerEdge R7725xdArticle Properties
Article Number: 000443257
Article Type: How To
Last Modified: 10 أبريل 2026
Version: 2
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.