검색

18.5. 가상 머신 I/O 성능 최적화

download PDF

VM(가상 머신)의 입력 및 출력(I/O) 기능은 VM의 전체 효율성을 크게 제한할 수 있습니다. 이를 해결하기 위해 블록 I/O 매개변수를 구성하여 VM의 I/O를 최적화할 수 있습니다.

18.5.1. 가상 머신에서 블록 I/O 튜닝

하나 이상의 VM에서 여러 블록 장치를 사용하는 경우 I/O weights 를 수정하여 특정 가상 장치의 I/O 우선 순위를 조정하는 것이 중요할 수 있습니다.

장치의 I/O 가중치를 늘리면 I/O 대역폭의 우선 순위가 증가하므로 더 많은 호스트 리소스를 제공합니다. 마찬가지로, 장치의 가중치를 줄이면 호스트 리소스가 적게 소비됩니다.

참고

각 장치의 가중치 값은 100 ~1000 범위 내에 있어야 합니다. 또는 값은 장치별 목록에서 해당 장치를 제거하는 0 일 수 있습니다.

프로세스

VM의 블록 I/O 매개변수를 표시하고 설정하려면 다음을 수행합니다.

  1. VM의 현재 & lt;blkio > 매개변수를 표시합니다.

    # virsh dumpxml VM-name

    <domain>
      [...]
      <blkiotune>
        <weight>800</weight>
        <device>
          <path>/dev/sda</path>
          <weight>1000</weight>
        </device>
        <device>
          <path>/dev/sdb</path>
          <weight>500</weight>
        </device>
      </blkiotune>
      [...]
    </domain>
  2. 지정된 장치의 I/O 가중치를 편집합니다.

    # virsh blkiotune VM-name --device-weights device, I/O-weight

    예를 들어, 다음에서는 testguest1 VM의 /dev/sda 장치의 가중치를 500으로 변경합니다.

    # virsh blkiotune testguest1 --device-weights /dev/sda, 500

18.5.2. 가상 머신의 디스크 I/O 제한

여러 VM이 동시에 실행되면 과도한 디스크 I/O를 사용하여 시스템 성능을 방해할 수 있습니다. KVM 가상화의 디스크 I/O 제한은 VM에서 호스트 머신으로 전송된 디스크 I/O 요청에 제한을 설정할 수 있는 기능을 제공합니다. 이렇게 하면 VM에서 공유 리소스를 과도하게 활용하고 다른 VM의 성능에 영향을 미치는 것을 방지할 수 있습니다.

디스크 I/O 제한을 활성화하려면 VM에 연결된 각 블록 장치에서 호스트 시스템에 연결된 디스크 I/O 요청에 대한 제한을 설정합니다.

프로세스

  1. virsh domblklist 명령을 사용하여 지정된 VM에 있는 모든 디스크 장치의 이름을 나열합니다.

    # virsh domblklist rollin-coal
    Target     Source
    ------------------------------------------------
    vda        /var/lib/libvirt/images/rollin-coal.qcow2
    sda        -
    sdb        /home/horridly-demanding-processes.iso
  2. throttle이 마운트되는 가상 디스크가 마운트된 호스트 블록 장치를 찾습니다.

    예를 들어 이전 단계의 sdb 가상 디스크를 제한하려면 다음 출력에서 디스크가 /dev/nvme0n1p3 파티션에 마운트되었음을 보여줍니다.

    $ lsblk
    NAME                                          MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
    zram0                                         252:0    0     4G  0 disk  [SWAP]
    nvme0n1                                       259:0    0 238.5G  0 disk
    ├─nvme0n1p1                                   259:1    0   600M  0 part  /boot/efi
    ├─nvme0n1p2                                   259:2    0     1G  0 part  /boot
    └─nvme0n1p3                                   259:3    0 236.9G  0 part
      └─luks-a1123911-6f37-463c-b4eb-fxzy1ac12fea 253:0    0 236.9G  0 crypt /home
  3. virsh blkiotune 명령을 사용하여 블록 장치의 I/O 제한을 설정합니다.

    # virsh blkiotune VM-name --parameter device,limit

    다음 예제에서는 rollin-coal VM의 sdb 디스크를 초당 I/O 작업과 초당 50MB의 읽기 및 쓰기 처리량으로 1000으로 제한합니다.

    # virsh blkiotune rollin-coal --device-read-iops-sec /dev/nvme0n1p3,1000 --device-write-iops-sec /dev/nvme0n1p3,1000 --device-write-bytes-sec /dev/nvme0n1p3,52428800 --device-read-bytes-sec /dev/nvme0n1p3,52428800

추가 정보

  • 디스크 I/O 제한은 다양한 상황에서 유용할 수 있습니다(예: 서로 다른 고객에 속하는 VM이 동일한 호스트에서 실행 중이거나 다른 VM에 대한 서비스 품질 보장이 제공되는 경우). 디스크 I/O 제한은 느린 디스크를 시뮬레이션하는 데에도 사용할 수 있습니다.
  • I/O 제한은 VM에 연결된 각 블록 장치에 독립적으로 적용할 수 있으며 처리량 및 I/O 작업에 대한 제한을 지원합니다.
  • Red Hat은 virsh blkdeviotune 명령을 사용하여 VM에서 I/O 제한을 구성하는 것을 지원하지 않습니다. RHEL 9를 VM 호스트로 사용할 때 지원되지 않는 기능에 대한 자세한 내용은 RHEL 9 가상화에서 지원되지 않는 기능을 참조하십시오.

18.5.3. 다중 대기열 virtio-scsi 활성화

VM(가상 머신)에서 virtio-scsi 스토리지 장치를 사용하는 경우 다중 대기열 virtio-scsi 기능을 통해 스토리지 성능과 확장성을 개선할 수 있습니다. 각 vCPU(가상 CPU)가 다른 vCPU에 영향을 주지 않고 별도의 대기열과 인터럽트를 사용할 수 있도록 합니다.

프로세스

  • 특정 VM에 대한 다중 대기열 virtio-scsi 지원을 활성화하려면 VM의 XML 구성에 다음을 추가합니다. 여기서 N 은 총 vCPU 대기열 수입니다.

    <controller type='scsi' index='0' model='virtio-scsi'>
       <driver queues='N' />
    </controller>
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.