6.2. 가상화 게스트로 Red Hat Enterprise Linux를 사용한 I/O 스케줄링
Red Hat Enterprise Linux 게스트 가상 머신에서 게스트가 실행되는 하이퍼바이저에 관계없이 I/O 스케줄링을 사용할 수 있습니다. 다음은 고려해야 할 이점 및 문제 목록입니다.
- Red Hat Enterprise Linux 게스트는
noop
스케줄러를 사용하여 많은 이점을 얻을 수 있습니다. 스케줄러는 I/O를 하이퍼바이저로 보내기 전에 게스트 운영 체제의 소규모 요청을 더 큰 요청으로 병합합니다. 이를 통해 하이퍼바이저는 I/O 요청을 보다 효율적으로 처리할 수 있으므로 게스트의 I/O 성능을 크게 향상시킬 수 있습니다. - 워크로드 I/O 및 스토리지 장치를 연결하는 방법에 따라
데드라인
과 같은 스케줄러는noop
보다 더 유용할 수 있습니다. Red Hat은 어떤 스케줄러가 최상의 성능 영향을 미치는지 확인하기 위해 성능 테스트를 권장합니다. - iSCSI, SR-IOV 또는 물리적 장치 패스스루에서 액세스하는 스토리지를 사용하는 게스트는
noop
스케줄러를 사용해서는 안 됩니다. 이러한 방법에서는 호스트가 기본 물리적 장치에 I/O 요청을 최적화할 수 없습니다.
참고
가상화된 환경에서는 호스트 및 게스트 계층 모두에서 I/O를 예약하는 것이 유용할 수 있습니다. 여러 게스트가 호스트 운영 체제에서 관리하는 파일 시스템 또는 블록 장치에서 스토리지를 사용하는 경우 호스트는 모든 게스트의 요청을 인식하므로 보다 효율적으로 I/O를 예약할 수 있습니다. 또한 호스트는 스토리지의 물리적 레이아웃을 알고 있으며, 이는 게스트의 가상 스토리지에 선형적으로 매핑되지 않을 수 있습니다.
일반적으로 합성 벤치마크는 가상 환경에서 공유 리소스를 사용하는 시스템의 성능을 정확하게 비교하지 않으므로 모든 스케줄러 튜닝을 일반적인 운영 조건에서 테스트해야 합니다.
6.2.1. Red Hat Enterprise Linux 7용 I/O 스케줄러 구성
Red Hat Enterprise Linux 7 시스템에 사용되는 기본 스케줄러는
데드라인
입니다. 그러나 Red Hat Enterprise Linux 7 게스트 머신에서는 다음을 수행하여 스케줄러를 noop
로 변경하는 것이 유용할 수 있습니다.
/etc/default/grub
파일에서GRUB_CMDLINE_LINUX
줄의 lift=deadline
문자열을 lift=noop
로 변경합니다.엘레베이터 =
문자열이 없는 경우 줄 끝에lift =noop
를 추가합니다.다음은 성공적인 변경 후/etc/default/grub
파일을 보여줍니다.# cat /etc/default/grub [...] GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=vg00/lvroot rhgb quiet elevator=noop" [...]
/boot/grub2/grub.cfg
파일을 다시 빌드합니다.- BIOS 기반 시스템에서 다음을 수행합니다.
# grub2-mkconfig -o /boot/grub2/grub.cfg
- UEFI 기반 시스템에서 다음을 수행합니다.
# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg