qemu-block
[Top][All Lists]
Advanced

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

Re: [Qemu-block] [PATCH] qemu-options: explain disk I/O throttling optio


From: Alberto Garcia
Subject: Re: [Qemu-block] [PATCH] qemu-options: explain disk I/O throttling options
Date: Wed, 22 Feb 2017 14:14:08 +0100
User-agent: Notmuch/0.18.2 (http://notmuchmail.org) Emacs/24.4.1 (i586-pc-linux-gnu)

On Wed 22 Feb 2017 12:14:33 PM CET, Stefan Hajnoczi wrote:
>> > Values must be larger than the maximum
>> > +request size to avoid timeouts or hangs in the guest.  At minimum use 2 
>> > MB/s
>> > +for disks.
>> 
>> Is this so? throttle_compute_wait() does not use the request size at
>> all. The size is used to do the accounting afterwards. In other
>> words: requests are not throttled if they exceed the limit, they are
>> throttled after the limit has been exceeded by previous requests.
>> 
>> A low limit will certainly slow down the guest and can cause
>> timeouts, but I don't know if being larger or smaller than the maximum
>> request size is what makes the difference.
>
> You are right, I'm still have the behavior of the old throttling
> implementation in mind.
>
> I'd still like to recommend a sane minimum because anything around the
> size of a single request leads to timeouts and hangs inside the guest.

Yes, that sounds sensible.

> How about:
>
>   Small values can lead to timeouts or hangs inside the guest.  A safe
>   minimum for disks is 2 MB/s.

Looks good to me.

>> > address@hidden address@hidden,address@hidden,address@hidden
>> > +Specify bursts in bytes per second, either for all request types or for 
>> > reads
>> > +or writes only.  Bursts allow the guest I/O to spike above the limit
>> > +temporarily.  The default burst value is 1/10th of the limit.
>> 
>> "The default burst value is 1/10th of the limit" is an implementation
>> detail that the user doesn't need to know about. What it means is that a
>> bps limit of 10 MB/s is implemented internally as 1MB per 100ms.
>>
>> I would leave that out, it doesn't even make sense that the burst limit
>> is lower than the normal limit, we actually forbid that (aaa1e77ffae52).
>
> Unfortunately the bps_max = avg / 10 default value is visible via
> query-block.  A bug was recently reported about this:
> https://bugzilla.redhat.com/show_bug.cgi?id=1414630
>
> Would you prefer a private field in the throttling code so this detail
> is hidden from users?

Oh, I see. I would rather hide it from the user, either in throttle.c or
even in bdrv_block_device_info().

Berto



reply via email to

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