7.4. 블록 I/O 튜닝 기술
이 섹션에서는 가상화 환경에서 블록 I/O 성능을 조정하는 더 많은 기술을 설명합니다.
7.4.1. 디스크 I/O Throttling
여러 가상 머신이 동시에 실행되는 경우 과도한 디스크 I/O를 사용하여 시스템 성능을 방해할 수 있습니다. KVM의 디스크 I/O 제한은 가상 머신에서 호스트 시스템으로 전송된 디스크 I/O 요청에 대한 제한을 설정하는 기능을 제공합니다. 이렇게 하면 가상 머신이 공유 리소스를 과도하게 활용하고 다른 가상 시스템의 성능에 영향을 줄 수 있습니다.
디스크 I/O 제한은 다양한 상황에서 유용할 수 있습니다(예: 다른 고객에 속하는 게스트 가상 머신이 동일한 호스트에서 실행 중이거나 다른 게스트에 대해 서비스 품질 보장이 제공되는 경우). 디스크 I/O 제한은 느린 디스크를 시뮬레이션하는 데 사용할 수도 있습니다.
I/O 제한은 게스트에 연결된 각 블록 장치에 독립적으로 적용할 수 있으며 처리량 및 I/O 작업에 대한 제한을 지원합니다. virsh blkdeviotune 명령을 사용하여 가상 머신에 대한 I/O 제한을 설정합니다.
# virsh blkdeviotune virtual_machine device --parameter limit
device는 가상 머신에 연결된 디스크 장치 중 하나에 대한 고유한 대상 이름(
<target dev='name'/>
) 또는 소스 파일(<source file='name'/>
)을 지정합니다. 디스크 장치 이름 목록에 virsh domblk list 명령을 사용합니다.
선택적 매개변수는 다음과 같습니다.
total-bytes-sec
- 초당 총 처리량 제한(바이트)입니다.
read-bytes-sec
- 읽기 처리량 제한(초당 바이트).
write-bytes-sec
- 쓰기 처리량 제한(초당 바이트).
total-iops-sec
- 초당 총 I/O 작업 제한입니다.
read-iops-sec
- 읽기 I/O 작업 제한 초당 제한입니다.
write-iops-sec
- 초당 쓰기 I/O 작업 제한입니다.
예를 들어
virtual_machine
의 vda
를 초당 1000개의 I/O 작업으로 제한하고 초당 50MB의 I/O 작업을 실행하려면 다음 명령을 실행합니다.
# virsh blkdeviotune virtual_machine vda --total-iops-sec 1000 --total-bytes-sec 52428800