[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 0/4] block: fix I/O throttling oscillations
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-devel] [PATCH v2 0/4] block: fix I/O throttling oscillations |
Date: |
Fri, 5 Apr 2013 14:32:36 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
Am 05.04.2013 um 11:32 hat Stefan Hajnoczi geschrieben:
> BenoƮt Canet <address@hidden> reported that QEMU I/O throttling can
> oscillate under continuous I/O. The test case runs 50 threads performing
> random writes and a -drive iops=150 limit is used.
>
> Since QEMU I/O throttling is implemented using 100 millisecond time slices,
> we'd expect 150 +/- 15 IOPS. Anything outside that range indicates a problem
> with the I/O throttling algorithm.
>
> It turned out that even a single thread performing sequential I/O continuously
> is throttled outside the 150 +/- 15 IOPS range. The continous stream of I/O
> slows down as time goes on but resets to 150 IOPS again when interrupted.
> This
> can be tested with:
>
> $ iostat -d 1 -x /dev/vdb &
> $ dd if=/dev/vdb of=/dev/null bs=4096 iflag=direct
>
> This patches addresses these problems as follows:
>
> 1. Account for I/O requests when they are submitted instead of completed.
> This
> ensures that we do not exceed the budget for this slice. Exceeding the
> budget leads to fluctuations since we have to make up for this later.
>
> 2. Use constant 100 millisecond slice time. Adjusting the slice time at
> run-time led to oscillations. Since the reason for adjusting slice time is
> not clear, drop this behavior.
>
> I have also included two code clean-up patches.
>
> Tested-By: Benoit Canet <address@hidden>
>
> v2:
> * Account slice_submitted after both bps and iops checks pass [kwolf]
Thanks, applied all to the block branch.
Kevin