Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

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 로 변경하는 것이 유용할 수 있습니다.
  1. /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"
    [...]
    
  2. /boot/grub2/grub.cfg 파일을 다시 빌드합니다.
    • BIOS 기반 시스템에서 다음을 수행합니다.
      # grub2-mkconfig -o /boot/grub2/grub.cfg
    • UEFI 기반 시스템에서 다음을 수행합니다.
      # grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg