Virtio/Block/Latency: Difference between revisions

From KVM
No edit summary
No edit summary
Line 3: Line 3:
== Benchmarks ==
== Benchmarks ==


Single-threaded read or write benchmarks are suitable for measuring virtio-blk latency.
Single-threaded read or write benchmarks are suitable for measuring virtio-blk latency. The guest should have 1 vcpu only, which simplifies the setup and analysis.
 
I use a simple sequential read C program which prints the average time per read operation at the end.


== Instrumenting the stack ==
== Instrumenting the stack ==


==== Guest ====
==== Guest ====
The single-threaded read/write benchmark prints the mean time per operation at the end.  This number is the total latency including guest, host, and QEMU.  All latency numbers from layers further down the stack should be smaller than the guest number.


==== Guest virtio-pci ====
==== Guest virtio-pci ====

Revision as of 06:30, 3 June 2010

This page describes how virtio-blk latency can be measured. The aim is to build a picture of the latency at different layers of the virtualization stack for virtio-blk.

Benchmarks

Single-threaded read or write benchmarks are suitable for measuring virtio-blk latency. The guest should have 1 vcpu only, which simplifies the setup and analysis.

Instrumenting the stack

Guest

The single-threaded read/write benchmark prints the mean time per operation at the end. This number is the total latency including guest, host, and QEMU. All latency numbers from layers further down the stack should be smaller than the guest number.

Guest virtio-pci

Host kvm

QEMU virtio

QEMU paio

Host pread64

Results

Host

Guest

Latency