qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [question] virtio-blk performance degradationhappened w


From: Christian Borntraeger
Subject: Re: [Qemu-devel] [question] virtio-blk performance degradationhappened with virito-serial
Date: Mon, 01 Sep 2014 15:09:51 +0200
User-agent: Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Thunderbird/31.0

On 01/09/14 14:52, Zhang Haoyu wrote:
>>>> Hi, all
>>>>
>>>> I start a VM with virtio-serial (default ports number: 31), and found that 
>>>> virtio-blk performance degradation happened, about 25%, this problem can 
>>>> be reproduced 100%.
>>>> without virtio-serial:
>>>> 4k-read-random 1186 IOPS
>>>> with virtio-serial:
>>>> 4k-read-random 871 IOPS
>>>>
>>>> but if use max_ports=2 option to limit the max number of virio-serial 
>>>> ports, then the IO performance degradation is not so serious, about 5%.
>>>>
>>>> And, ide performance degradation does not happen with virtio-serial.
>>>
>>> Pretty sure it's related to MSI vectors in use.  It's possible that
>>> the virtio-serial device takes up all the avl vectors in the guests,
>>> leaving old-style irqs for the virtio-blk device.
>>>
>> I don't think so,
>> I use iometer to test 64k-read(or write)-sequence case, if I disable the 
>> virtio-serial dynamically via device manager->virtio-serial => disable,
>> then the performance get promotion about 25% immediately, then I re-enable 
>> the virtio-serial via device manager->virtio-serial => enable,
>> the performance got back again, very obvious.
> add comments:
> Although the virtio-serial is enabled, I don't use it at all, the degradation 
> still happened.

This is just wild guessing:
If virtio-blk and virtio-serial share an IRQ, the guest operating system has to 
check each virtqueue for activity. Maybe there is some inefficiency doing that.
AFAIK virtio-serial registers 64 virtqueues (on 31 ports + console) even if 
everything is unused.

Christian





reply via email to

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