[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