qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] 4k seq read splitting for virtio-blk - possible workaro


From: Andrey Korolyov
Subject: Re: [Qemu-devel] 4k seq read splitting for virtio-blk - possible workarounds?
Date: Mon, 26 Oct 2015 19:31:06 +0300

On Mon, Oct 26, 2015 at 6:37 PM, Paolo Bonzini <address@hidden> wrote:
>
>
> On 26/10/2015 12:50, Andrey Korolyov wrote:
>> Hi,
>>
>> during the test against generic storage backend with NBD frontend we
>> found that the virtio block device is always splitting a single read
>> range request to 4k ones, bringing the overall performance of the
>> sequential reads far below virtio-scsi. Random reads are going
>> relatively well on small blocks due to small overhead comparing to
>> sequential ones and writes are ok in all cases. Multiread slightly
>> improves the situation, but it would be nice to see complete
>> pass-through of range read requests down to backend without an
>> intermediate splitting.
>>
>> Samples measured on an NBD backend during 128k sequential reads for
>> both virtio-blk and virtio-scsi are attached. Please let me know if it
>> looks like that I missed something or this behavior is plainly wrong.
>
> How does the blktrace look like in the guest?
>

Yep, thanks for suggestion. It looks now like a pure driver issue:

 Reads Queued:       11008,    44032KiB  Writes Queued:           0,        0KiB
 Read Dispatches:    11008,    44032KiB  Write Dispatches:        0,        0KiB

vs

 Reads Queued:      185728,   742912KiB  Writes Queued:           0,        0KiB
 Read Dispatches:     2902,   742912KiB  Write Dispatches:        0,        0KiB

Because guest virtio-blk driver lacks *any* blk scheduler management,
this is kinda logical. Requests for scsi backend are dispatched in
single block-sized chunks as well, but they are mostly merged by a
scheduler before being passed to the device layer. Could be there any
improvements over the situation except writing an underlay b/w virtio
emulator backend and the real storage?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]