-
Virtio Block 성능 벤치마크개발/가상화 2018. 12. 23. 14:08
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
'개발 > 가상화' 카테고리의 다른 글
Virtio Block 성능 세부 분석 (0) 2019.05.20 QEMU를 이용해 커널 이미지 바꿔서 부팅해보기 (0) 2018.12.20 kvm ioeventfd (0) 2018.08.11 kvm irqfd (1) 2018.08.11 vhost (0) 2018.07.08