개발/가상화

Virtio Block 성능 벤치마크

kwony 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