On Mon 20 Feb 2017 05:52:04 PM CET, Stefan Hajnoczi wrote: > The disk I/O throttling options have been listed for a long time but > never explained on the QEMU man page.
> +@item bps=@var{b},bps_rd=@var{r},bps_wr=@var{w} > +Specify bandwidth throttling limits in bytes per second, either for all > request > +types or for reads or writes only. Perhaps for the manual page it makes sense to use them, but bps, bps_rd, etc. are the legacy names for those options. They're internally renamed to throttling.bps-total, throttling.bps-read, ... > 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. > +@item bps_max=@var{bm},bps_rd_max=@var{rm},bps_wr_max=@var{wm} > +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). > +@item iops=@var{i},iops_rd=@var{r},iops_wr=@var{w} > +Specify request rate limits in requests per second, either for all request > +types or for reads or writes only. > +@item bps_max=@var{bm},bps_rd_max=@var{rm},bps_wr_max=@var{wm} You meant iops_max, iops_rd_max and iops_wr_max here? Berto