Virtio Block 성능 벤치마크
QEMU와 KVM환경에서 띄운 Ubuntu VM의 스토리지 성능을 Virtio Block을 사용할 때와 아닐 때를 각각 나누어서 측정을 해보았고 최적화 옵션을 적용할 때 Host대비 얼마정도의 성능을 내는지도 실험 해봤다.
1. 실험 방법
벤치마크툴은 iozone을 사용했고 적용한 옵션은 다음과 같다.
iozone -e -I -a -s 100M -r 4k -r 4096k -r 16384k -i 0 -i 1 -i 2
여기서 주목해야할 옵션 항목만 짚고 넘어가자.
- -r 은 record할 사이즈를 말하며 여러개의 인자를 전달하면 인자의 개수만큼 측정한다.
- -i 는 측정할 실험 항목을 의미한다. (0=write/rewrite, 1=read/re-read, 2=random-read/write)
- -s 는 읽고 쓸 데이터의 크기를 의미한다.
2. 실험환경
Host 환경
- CPU: Intel(R) Core(TM) i5-6600 CPU @ 3.30GHz
- Memory: 8G
- Storage: SSD
Guest VM 환경
- CPU: Intel(R) Core(TM) i5-6600 CPU @ 3.30GHz
- Memory: 4G
- Storage: VirtioBlock(1) / Qemu Storage(2)
3. 측정결과 및 분석
(1) Record Size: 4K
4K |
write |
rewrite |
read |
reread |
R/Read |
R/Reread |
Host |
108531 |
140209 |
130116 |
149202 |
41372 |
108057 |
VM(VirtioIO) |
56260 |
76539 |
74808 |
76864 |
33816 |
73393 |
VM(QEMU Storage) |
10231 |
13252 |
11558 |
15289 |
13324 |
17782 |
(2) Record Size: 4096K
4096K |
write |
rewrite |
read |
reread |
R/Read |
R/Reread |
Host |
475827 |
493225 |
500618 |
506168 |
506449 |
491150 |
VM(VirtioIO) |
381458 |
385537 |
406131 |
403043 |
408653 |
387712 |
VM(QEMU Storage) |
254328 |
260574 |
261297 |
268813 |
254842 |
259518 |
(3) Record Size: 16384K
16384K |
write |
rewrite |
read |
reread |
R/Read |
R/Reread |
Host |
495826 |
502281 |
524808 |
521351 |
520112 |
502445 |
VM(VirtioIO) |
394283 |
431118 |
423213 |
417768 |
435611 |
418307 |
VM(QEMU Storage) |
276397 |
269190 |
273982 |
288246 |
288831 |
268841 |
* 결과 단위는 KB/S이다.
- 측정 단위가(Record Size) 작을수록 VirtioBlock과 QEMU Storage의 성능차이가 많이 나며 커질 수록 어느정도 좁혀지나 40~60% 정도 Virtio Block의 성능이 더 우수한 것으로 수렴한다.
- QEMU Storage 일때는 Host의 절반 정도(53%~55%)이지만 Virtio Block 옵션을 적용하면 Host 대비 80% 정도의 성능을 낸다. Host의 Storage 성능이 워낙 빠르기 때문에 (SSD) 20% 정도의 성능을 손해보더라도 불편함없이 사용할 수 있을 것 같다.
- SSD로 띄운 VM은 최적화 옵션을 넣지 않아도 HDD로 띄운 Host보다 성능이 우수하게 나온다. 성능 구린 PC를 하나 더 사는 것 보다는 성능 좋은 PC에 Virtual Machine을 띄우는게 경제적으로나 성능적으로나 우수해보인다.
16384K |
write |
rewrite |
read |
reread |
R/Read |
R/Reread |
Host(HDD) |
135480 |
126629 |
155426 |
168672 |
136012 |
126976 |
VM (Virtio based SSD) |
394283 |
431118 |
423213 |
417768 |
435611 |
418307 |
VM(QEMU Storage) |
276397 |
269190 |
273982 |
288246 |
288831 |
268841 |