* [Qemu-devel] The design choice for how to enable block I/O throttling function in libvirt @ 2011-08-30 2:55 Zhi Yong Wu 2011-08-30 7:18 ` [Qemu-devel] [libvirt] " shu ming [not found] ` <CAJSP0QW1CPCokX=F5z7y==vn1S4wH0VtOaQ7oj4kC7f7uQM4MQ@mail.gmail.com> 0 siblings, 2 replies; 8+ messages in thread From: Zhi Yong Wu @ 2011-08-30 2:55 UTC (permalink / raw) To: libvir-list; +Cc: Stefan Hajnoczi, Zhi Yong Wu, QEMU Developers, Adam Litke HI, folks, I am trying to enable block I/O throttling function in libvirt. But currently i met some design questions, and don't make sure if we should extend blkiotune to support block I/O throttling or introduce one new libvirt command "blkiothrottle" to cover it or not. If you have some better idea, pls don't hesitate to drop your comments. If one new libvirt command "blkiothrottle" is introduced, I plan to design its usage syntax as below: virsh # help blkiothrottle NAME blkiothrottle - Set or display a block disk I/O throttle setting. SYNOPSIS blkiothrottle <domain> <device> [--bps <number>] [--bps_rd <number>] [--bps_wr <number>] [--iops <number>] [--iops_rd <number>] [--iops_wr <number>] DESCRIPTION Set or display a block disk I/O throttle setting. OPTIONS [--domain] <string> domain name, id or uuid [--device] <string> block device --bps <number> total throughput limits in bytes/s --bps_rd <number> read throughput limits in bytes/s --bps_wr <number> write throughput limits in bytes/s --iops <number> total operation limits in numbers/s --iops_rd <number> read operation limits in numbers/s --iops_wr <number> write operation limits in numbers/s virsh # 2.) If blkiotune command is extended to enable block I/O throttling function. virsh # help blkiotune NAME blkiotune - Get or set blkio parameters SYNOPSIS blkiotune <domain> [--weight <number>] [--config] [--live] [--current] [--bps <number>] [--bps_rd <number>] [--bps_wr <number>] [--iops <number>] [--iops_rd <number>] [--iops_wr <number>] DESCRIPTION Get or set the current blkio parameters for a guest domain. To get the blkio parameters use following command: virsh # blkiotune <domain> OPTIONS [--domain] <string> domain name, id or uuid --weight <number> IO Weight in range [100, 1000] --config affect next boot --live affect running domain --current affect current domain Welcome to your suggestions or comments about how to choose it. thanks. -- Regards, Zhi Yong Wu ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [libvirt] The design choice for how to enable block I/O throttling function in libvirt 2011-08-30 2:55 [Qemu-devel] The design choice for how to enable block I/O throttling function in libvirt Zhi Yong Wu @ 2011-08-30 7:18 ` shu ming 2011-08-30 8:10 ` Zhi Yong Wu [not found] ` <CAJSP0QW1CPCokX=F5z7y==vn1S4wH0VtOaQ7oj4kC7f7uQM4MQ@mail.gmail.com> 1 sibling, 1 reply; 8+ messages in thread From: shu ming @ 2011-08-30 7:18 UTC (permalink / raw) To: Zhi Yong Wu; +Cc: libvir-list, QEMU Developers See commens below. Zhi Yong Wu: > HI, folks, > > I am trying to enable block I/O throttling function in libvirt. But > currently i met some design questions, and don't make sure if we > should extend blkiotune to support block I/O throttling or introduce > one new libvirt command "blkiothrottle" to cover it or not. If you > have some better idea, pls don't hesitate to drop your comments. > > If one new libvirt command "blkiothrottle" is introduced, I plan to > design its usage syntax as below: > > virsh # help blkiothrottle > NAME > blkiothrottle - Set or display a block disk I/O throttle setting. > > SYNOPSIS > blkiothrottle<domain> <device> [--bps<number>] [--bps_rd > <number>] [--bps_wr<number>] [--iops<number>] [--iops_rd<number>] > [--iops_wr<number>] > > DESCRIPTION > Set or display a block disk I/O throttle setting. > > OPTIONS > [--domain]<string> domain name, id or uuid > [--device]<string> block device > --bps<number> total throughput limits in bytes/s > --bps_rd<number> read throughput limits in bytes/s > --bps_wr<number> write throughput limits in bytes/s > --iops<number> total operation limits in numbers/s > --iops_rd<number> read operation limits in numbers/s > --iops_wr<number> write operation limits in numbers/s > How to display the current I/O throttle setting of a specific block device here? I prfer to have less command to be as simple as possible for users. But it seems that we need another command here instead of having a block IO specific command like "iothrottle". Supposely, the next step of I/O throttling will be network device limit. Shoud we have another new command like "niciothrottle"? ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [libvirt] The design choice for how to enable block I/O throttling function in libvirt 2011-08-30 7:18 ` [Qemu-devel] [libvirt] " shu ming @ 2011-08-30 8:10 ` Zhi Yong Wu 2011-08-30 8:31 ` shu ming 0 siblings, 1 reply; 8+ messages in thread From: Zhi Yong Wu @ 2011-08-30 8:10 UTC (permalink / raw) To: shu ming; +Cc: libvir-list, guijianfeng, QEMU Developers, hutao On Tue, Aug 30, 2011 at 3:18 PM, shu ming <shuming@linux.vnet.ibm.com> wrote: > See commens below. > Zhi Yong Wu: >> >> HI, folks, >> >> I am trying to enable block I/O throttling function in libvirt. But >> currently i met some design questions, and don't make sure if we >> should extend blkiotune to support block I/O throttling or introduce >> one new libvirt command "blkiothrottle" to cover it or not. If you >> have some better idea, pls don't hesitate to drop your comments. >> >> If one new libvirt command "blkiothrottle" is introduced, I plan to >> design its usage syntax as below: >> >> virsh # help blkiothrottle >> NAME >> blkiothrottle - Set or display a block disk I/O throttle setting. >> >> SYNOPSIS >> blkiothrottle<domain> <device> [--bps<number>] [--bps_rd >> <number>] [--bps_wr<number>] [--iops<number>] [--iops_rd<number>] >> [--iops_wr<number>] >> >> DESCRIPTION >> Set or display a block disk I/O throttle setting. >> >> OPTIONS >> [--domain]<string> domain name, id or uuid >> [--device]<string> block device >> --bps<number> total throughput limits in bytes/s >> --bps_rd<number> read throughput limits in bytes/s >> --bps_wr<number> write throughput limits in bytes/s >> --iops<number> total operation limits in numbers/s >> --iops_rd<number> read operation limits in numbers/s >> --iops_wr<number> write operation limits in numbers/s >> > > How to display the current I/O throttle setting of a specific block device > here? It will show as below: virtio0: bps=xxx, bps_rd=xxx, bps_wr=xxx, iops=xxx, iops_rd=xxx, iops_wr=xxx. > I prfer to have less command to be as simple as possible for users. But it > seems > that we need another command here instead of having a block IO specific > command like "iothrottle". I also prefer this, but would like to get other guy's suggestions, especially maintainers. > Supposely, the next step of I/O throttling will be network device limit. > Shoud we have another > new command like "niciothrottle"? For network device, network cgroup can cover this. > > > -- Regards, Zhi Yong Wu ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [libvirt] The design choice for how to enable block I/O throttling function in libvirt 2011-08-30 8:10 ` Zhi Yong Wu @ 2011-08-30 8:31 ` shu ming 2011-08-30 8:36 ` Zhi Yong Wu 0 siblings, 1 reply; 8+ messages in thread From: shu ming @ 2011-08-30 8:31 UTC (permalink / raw) To: Zhi Yong Wu; +Cc: libvir-list, guijianfeng, QEMU Developers, hutao Zhi Yong Wu: > On Tue, Aug 30, 2011 at 3:18 PM, shu ming<shuming@linux.vnet.ibm.com> wrote: >> See commens below. >> Zhi Yong Wu: >>> HI, folks, >>> >>> I am trying to enable block I/O throttling function in libvirt. But >>> currently i met some design questions, and don't make sure if we >>> should extend blkiotune to support block I/O throttling or introduce >>> one new libvirt command "blkiothrottle" to cover it or not. If you >>> have some better idea, pls don't hesitate to drop your comments. >>> >>> If one new libvirt command "blkiothrottle" is introduced, I plan to >>> design its usage syntax as below: >>> >>> virsh # help blkiothrottle >>> NAME >>> blkiothrottle - Set or display a block disk I/O throttle setting. >>> >>> SYNOPSIS >>> blkiothrottle<domain> <device> [--bps<number>] [--bps_rd >>> <number>] [--bps_wr<number>] [--iops<number>] [--iops_rd<number>] >>> [--iops_wr<number>] >>> >>> DESCRIPTION >>> Set or display a block disk I/O throttle setting. >>> >>> OPTIONS >>> [--domain]<string> domain name, id or uuid >>> [--device]<string> block device >>> --bps<number> total throughput limits in bytes/s >>> --bps_rd<number> read throughput limits in bytes/s >>> --bps_wr<number> write throughput limits in bytes/s >>> --iops<number> total operation limits in numbers/s >>> --iops_rd<number> read operation limits in numbers/s >>> --iops_wr<number> write operation limits in numbers/s >>> >> How to display the current I/O throttle setting of a specific block device >> here? > It will show as below: > virtio0: bps=xxx, bps_rd=xxx, bps_wr=xxx, iops=xxx, iops_rd=xxx, iops_wr=xxx. With which options to the command? I guess "blkiothrottle <domain> <device>" will display the current setting. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [libvirt] The design choice for how to enable block I/O throttling function in libvirt 2011-08-30 8:31 ` shu ming @ 2011-08-30 8:36 ` Zhi Yong Wu 0 siblings, 0 replies; 8+ messages in thread From: Zhi Yong Wu @ 2011-08-30 8:36 UTC (permalink / raw) To: shu ming; +Cc: libvir-list, guijianfeng, QEMU Developers, hutao On Tue, Aug 30, 2011 at 4:31 PM, shu ming <shuming@linux.vnet.ibm.com> wrote: > Zhi Yong Wu: >> >> On Tue, Aug 30, 2011 at 3:18 PM, shu ming<shuming@linux.vnet.ibm.com> >> wrote: >>> >>> See commens below. >>> Zhi Yong Wu: >>>> >>>> HI, folks, >>>> >>>> I am trying to enable block I/O throttling function in libvirt. But >>>> currently i met some design questions, and don't make sure if we >>>> should extend blkiotune to support block I/O throttling or introduce >>>> one new libvirt command "blkiothrottle" to cover it or not. If you >>>> have some better idea, pls don't hesitate to drop your comments. >>>> >>>> If one new libvirt command "blkiothrottle" is introduced, I plan to >>>> design its usage syntax as below: >>>> >>>> virsh # help blkiothrottle >>>> NAME >>>> blkiothrottle - Set or display a block disk I/O throttle setting. >>>> >>>> SYNOPSIS >>>> blkiothrottle<domain> <device> [--bps<number>] [--bps_rd >>>> <number>] [--bps_wr<number>] [--iops<number>] [--iops_rd<number>] >>>> [--iops_wr<number>] >>>> >>>> DESCRIPTION >>>> Set or display a block disk I/O throttle setting. >>>> >>>> OPTIONS >>>> [--domain]<string> domain name, id or uuid >>>> [--device]<string> block device >>>> --bps<number> total throughput limits in bytes/s >>>> --bps_rd<number> read throughput limits in bytes/s >>>> --bps_wr<number> write throughput limits in bytes/s >>>> --iops<number> total operation limits in numbers/s >>>> --iops_rd<number> read operation limits in numbers/s >>>> --iops_wr<number> write operation limits in numbers/s >>>> >>> How to display the current I/O throttle setting of a specific block >>> device >>> here? >> >> It will show as below: >> virtio0: bps=xxx, bps_rd=xxx, bps_wr=xxx, iops=xxx, iops_rd=xxx, >> iops_wr=xxx. > > With which options to the command? I guess "blkiothrottle <domain> > <device>" will display the current setting. Right > > > -- Regards, Zhi Yong Wu ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <CAJSP0QW1CPCokX=F5z7y==vn1S4wH0VtOaQ7oj4kC7f7uQM4MQ@mail.gmail.com>]
[parent not found: <20110830134636.GB29130@aglitke.rchland.ibm.com>]
[parent not found: <CAJSP0QUHm=y8XJC_KXRg7ufFZt3K_XDDfQb--sxjC+c0GjO8qg@mail.gmail.com>]
* [Qemu-devel] [RFC] block I/O throttling: how to enable in libvirt [not found] ` <CAJSP0QUHm=y8XJC_KXRg7ufFZt3K_XDDfQb--sxjC+c0GjO8qg@mail.gmail.com> @ 2011-09-01 3:55 ` Zhi Yong Wu 2011-09-01 4:21 ` Osier Yang 0 siblings, 1 reply; 8+ messages in thread From: Zhi Yong Wu @ 2011-09-01 3:55 UTC (permalink / raw) To: Stefan Hajnoczi Cc: hutao, Adam Litke, QEMU Developers, Zhi Yong Wu, guijianfeng On Wed, Aug 31, 2011 at 08:18:19AM +0100, Stefan Hajnoczi wrote: >Subject: Re: The design choice for how to enable block I/O throttling > function in libvirt >From: Stefan Hajnoczi <stefanha@gmail.com> >To: Adam Litke <agl@us.ibm.com> >Cc: libvir-list@redhat.com, "Daniel P. Berrange" <berrange@redhat.com>, Zhi > Yong Wu <wuzhy@linux.vnet.ibm.com>, Zhi Yong Wu <zwu.kernel@gmail.com> >Content-Type: text/plain; charset=ISO-8859-1 >Content-Transfer-Encoding: quoted-printable >X-Brightmail-Tracker: AAAAAA== >X-Xagent-From: stefanha@gmail.com >X-Xagent-To: wuzhy@linux.vnet.ibm.com >X-Xagent-Gateway: bldgate.vnet.ibm.com (XAGENTU7 at BLDGATE) > >On Tue, Aug 30, 2011 at 2:46 PM, Adam Litke <agl@us.ibm.com> wrote: >> On Tue, Aug 30, 2011 at 09:53:33AM +0100, Stefan Hajnoczi wrote: >>> On Tue, Aug 30, 2011 at 3:55 AM, Zhi Yong Wu <zwu.kernel@gmail.com> wrote: >>> > I am trying to enable block I/O throttling function in libvirt. But >>> > currently i met some design questions, and don't make sure if we >>> > should extend blkiotune to support block I/O throttling or introduce >>> > one new libvirt command "blkiothrottle" to cover it or not. If you >>> > have some better idea, pls don't hesitate to drop your comments. >>> >>> A little bit of context: this discussion is about adding libvirt >>> support for QEMU disk I/O throttling. >> >> Thanks for the additional context Stefan. >> >>> Today libvirt supports the cgroups blkio-controller, which handles >>> proportional shares and throughput/iops limits on host block devices. >>> blkio-controller does not support network file systems (NFS) or other >>> QEMU remote block drivers (curl, Ceph/rbd, sheepdog) since they are >>> not host block devices. QEMU I/O throttling works with all types of >>> -drive and therefore complements blkio-controller. >> >> The first question that pops into my mind is: Should a user need to understand >> when to use the cgroups blkio-controller vs. the QEMU I/O throttling method? In >> my opinion, it would be nice if libvirt had a single interface for block I/O >> throttling and libvirt would decide which mechanism to use based on the type of >> device and the specific limits that need to be set. > >Yes, I agree it would be simplest to pick the right mechanism, >depending on the type of throttling the user wants. More below. > >>> I/O throttling can be applied independently to each -drive attached to >>> a guest and supports throughput/iops limits. For more information on >>> this QEMU feature and a comparison with blkio-controller, see Ryan >>> Harper's KVM Forum 2011 presentation: >> >>> http://www.linux-kvm.org/wiki/images/7/72/2011-forum-keep-a-limit-on-it-io-throttling-in-qemu.pdf >> >> From the presentation, it seems that both the cgroups method the the qemu method >> offer comparable control (assuming a block device) so it might possible to apply >> either method from the same API in a transparent manner. Am I correct or are we >> suggesting that the Qemu throttling approach should always be used for Qemu >> domains? > >QEMU I/O throttling does not provide a proportional share mechanism. >So you cannot assign weights to VMs and let them receive a fraction of >the available disk time. That is only supported by cgroups >blkio-controller because it requires a global view which QEMU does not >have. > >So I think the two are complementary: > >If proportional share should be used on a host block device, use >cgroups blkio-controller. >Otherwise use QEMU I/O throttling. Stefan, Do you agree with introducing one new libvirt command blkiothrottle now? If so, i will work on the code draft to make it work. Danial and other maintainers, If you are available, can you make some comments for us?:) Regards, Zhi Yong Wu > >Stefan ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [RFC] block I/O throttling: how to enable in libvirt 2011-09-01 3:55 ` [Qemu-devel] [RFC] block I/O throttling: how to enable " Zhi Yong Wu @ 2011-09-01 4:21 ` Osier Yang 2011-09-01 4:51 ` Zhi Yong Wu 0 siblings, 1 reply; 8+ messages in thread From: Osier Yang @ 2011-09-01 4:21 UTC (permalink / raw) To: Zhi Yong Wu Cc: Stefan Hajnoczi, Adam Litke, QEMU Developers, guijianfeng, hutao 于 2011年09月01日 11:55, Zhi Yong Wu 写道: > On Wed, Aug 31, 2011 at 08:18:19AM +0100, Stefan Hajnoczi wrote: >> Subject: Re: The design choice for how to enable block I/O throttling >> function in libvirt >> From: Stefan Hajnoczi<stefanha@gmail.com> >> To: Adam Litke<agl@us.ibm.com> >> Cc: libvir-list@redhat.com, "Daniel P. Berrange"<berrange@redhat.com>, Zhi >> Yong Wu<wuzhy@linux.vnet.ibm.com>, Zhi Yong Wu<zwu.kernel@gmail.com> >> Content-Type: text/plain; charset=ISO-8859-1 >> Content-Transfer-Encoding: quoted-printable >> X-Brightmail-Tracker: AAAAAA== >> X-Xagent-From: stefanha@gmail.com >> X-Xagent-To: wuzhy@linux.vnet.ibm.com >> X-Xagent-Gateway: bldgate.vnet.ibm.com (XAGENTU7 at BLDGATE) >> >> On Tue, Aug 30, 2011 at 2:46 PM, Adam Litke<agl@us.ibm.com> wrote: >>> On Tue, Aug 30, 2011 at 09:53:33AM +0100, Stefan Hajnoczi wrote: >>>> On Tue, Aug 30, 2011 at 3:55 AM, Zhi Yong Wu<zwu.kernel@gmail.com> wrote: >>>>> I am trying to enable block I/O throttling function in libvirt. But >>>>> currently i met some design questions, and don't make sure if we >>>>> should extend blkiotune to support block I/O throttling or introduce >>>>> one new libvirt command "blkiothrottle" to cover it or not. If you >>>>> have some better idea, pls don't hesitate to drop your comments. >>>> A little bit of context: this discussion is about adding libvirt >>>> support for QEMU disk I/O throttling. >>> Thanks for the additional context Stefan. >>> >>>> Today libvirt supports the cgroups blkio-controller, which handles >>>> proportional shares and throughput/iops limits on host block devices. >>>> blkio-controller does not support network file systems (NFS) or other >>>> QEMU remote block drivers (curl, Ceph/rbd, sheepdog) since they are >>>> not host block devices. QEMU I/O throttling works with all types of >>>> -drive and therefore complements blkio-controller. >>> The first question that pops into my mind is: Should a user need to understand >>> when to use the cgroups blkio-controller vs. the QEMU I/O throttling method? In >>> my opinion, it would be nice if libvirt had a single interface for block I/O >>> throttling and libvirt would decide which mechanism to use based on the type of >>> device and the specific limits that need to be set. >> Yes, I agree it would be simplest to pick the right mechanism, >> depending on the type of throttling the user wants. More below. >> >>>> I/O throttling can be applied independently to each -drive attached to >>>> a guest and supports throughput/iops limits. For more information on >>>> this QEMU feature and a comparison with blkio-controller, see Ryan >>>> Harper's KVM Forum 2011 presentation: >>>> http://www.linux-kvm.org/wiki/images/7/72/2011-forum-keep-a-limit-on-it-io-throttling-in-qemu.pdf >>> From the presentation, it seems that both the cgroups method the the qemu method >>> offer comparable control (assuming a block device) so it might possible to apply >>> either method from the same API in a transparent manner. Am I correct or are we >>> suggesting that the Qemu throttling approach should always be used for Qemu >>> domains? >> QEMU I/O throttling does not provide a proportional share mechanism. >> So you cannot assign weights to VMs and let them receive a fraction of >> the available disk time. That is only supported by cgroups >> blkio-controller because it requires a global view which QEMU does not >> have. >> >> So I think the two are complementary: >> >> If proportional share should be used on a host block device, use >> cgroups blkio-controller. >> Otherwise use QEMU I/O throttling. > Stefan, > > Do you agree with introducing one new libvirt command blkiothrottle now? > If so, i will work on the code draft to make it work. > > Danial and other maintainers, > > If you are available, can you make some comments for us?:) Seems you posted to wrong list? This should be discussed in libvir-list instead. And if you meant to post to libvir-list, then s/Danial/Daniel/ :-) > > Regards, > > Zhi Yong Wu >> Stefan ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [RFC] block I/O throttling: how to enable in libvirt 2011-09-01 4:21 ` Osier Yang @ 2011-09-01 4:51 ` Zhi Yong Wu 0 siblings, 0 replies; 8+ messages in thread From: Zhi Yong Wu @ 2011-09-01 4:51 UTC (permalink / raw) To: Osier Yang Cc: Stefan Hajnoczi, Adam Litke, QEMU Developers, guijianfeng, hutao On Thu, Sep 01, 2011 at 12:21:20PM +0800, Osier Yang wrote: >Message-ID: <4E5F0840.5010203@redhat.com> >Date: Thu, 01 Sep 2011 12:21:20 +0800 >From: Osier Yang <jyang@redhat.com> >User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:6.0) Gecko/20110816 > Thunderbird/6.0 >MIME-Version: 1.0 >To: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com> >References: <CAEH94Li_C=BOe2gV8NyM48njYWMBAo9MTGc1eUOh-Y=cODs6VA@mail.gmail.com> > <CAJSP0QW1CPCokX=F5z7y==vn1S4wH0VtOaQ7oj4kC7f7uQM4MQ@mail.gmail.com> > <20110830134636.GB29130@aglitke.rchland.ibm.com> > <CAJSP0QUHm=y8XJC_KXRg7ufFZt3K_XDDfQb--sxjC+c0GjO8qg@mail.gmail.com> > <20110901035517.GD16985@f15.cn.ibm.com> >In-Reply-To: <20110901035517.GD16985@f15.cn.ibm.com> >Content-Type: text/plain; charset=UTF-8; format=flowed >X-Scanned-By: MIMEDefang 2.67 on 10.5.11.12 >Content-Transfer-Encoding: quoted-printable >X-MIME-Autoconverted: from 8bit to quoted-printable by mx1.redhat.com id > p814MA7o029817 >X-detected-operating-system: by eggs.gnu.org: Genre and OS details not > recognized. >X-Received-From: 209.132.183.28 >Cc: Stefan Hajnoczi <stefanha@gmail.com>, Adam Litke <agl@us.ibm.com>, QEMU > Developers <qemu-devel@nongnu.org>, guijianfeng@cn.fujitsu.com, > hutao@cn.fujitsu.com >Subject: Re: [Qemu-devel] [RFC] block I/O throttling: how to enable in > libvirt >X-BeenThere: qemu-devel@nongnu.org >X-Mailman-Version: 2.1.14 >Precedence: list >List-Id: <qemu-devel.nongnu.org> >List-Unsubscribe: <https://lists.nongnu.org/mailman/options/qemu-devel>, > <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe> >List-Archive: <http://lists.nongnu.org/archive/html/qemu-devel> >List-Post: <mailto:qemu-devel@nongnu.org> >List-Help: <mailto:qemu-devel-request@nongnu.org?subject=help> >List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/qemu-devel>, > <mailto:qemu-devel-request@nongnu.org?subject=subscribe> >X-Mailman-Copy: yes >Errors-To: qemu-devel-bounces+wuzhy=linux.vnet.ibm.com@nongnu.org >Sender: qemu-devel-bounces+wuzhy=linux.vnet.ibm.com@nongnu.org >X-Brightmail-Tracker: AAAAAA== >X-Xagent-From: jyang@redhat.com >X-Xagent-To: wuzhy@linux.vnet.ibm.com >X-Xagent-Gateway: vmsdvma.vnet.ibm.com (XAGENTU6 at VMSDVMA) > >于 2011年09月01日 11:55, Zhi Yong Wu 写道: >>On Wed, Aug 31, 2011 at 08:18:19AM +0100, Stefan Hajnoczi wrote: >>>Subject: Re: The design choice for how to enable block I/O throttling >>>function in libvirt >>>From: Stefan Hajnoczi<stefanha@gmail.com> >>>To: Adam Litke<agl@us.ibm.com> >>>Cc: libvir-list@redhat.com, "Daniel P. Berrange"<berrange@redhat.com>, Zhi >>>Yong Wu<wuzhy@linux.vnet.ibm.com>, Zhi Yong Wu<zwu.kernel@gmail.com> >>>Content-Type: text/plain; charset=ISO-8859-1 >>>Content-Transfer-Encoding: quoted-printable >>>X-Brightmail-Tracker: AAAAAA== >>>X-Xagent-From: stefanha@gmail.com >>>X-Xagent-To: wuzhy@linux.vnet.ibm.com >>>X-Xagent-Gateway: bldgate.vnet.ibm.com (XAGENTU7 at BLDGATE) >>> >>>On Tue, Aug 30, 2011 at 2:46 PM, Adam Litke<agl@us.ibm.com> wrote: >>>>On Tue, Aug 30, 2011 at 09:53:33AM +0100, Stefan Hajnoczi wrote: >>>>>On Tue, Aug 30, 2011 at 3:55 AM, Zhi Yong Wu<zwu.kernel@gmail.com> wrote: >>>>>>I am trying to enable block I/O throttling function in libvirt. But >>>>>>currently i met some design questions, and don't make sure if we >>>>>>should extend blkiotune to support block I/O throttling or introduce >>>>>>one new libvirt command "blkiothrottle" to cover it or not. If you >>>>>>have some better idea, pls don't hesitate to drop your comments. >>>>>A little bit of context: this discussion is about adding libvirt >>>>>support for QEMU disk I/O throttling. >>>>Thanks for the additional context Stefan. >>>> >>>>>Today libvirt supports the cgroups blkio-controller, which handles >>>>>proportional shares and throughput/iops limits on host block devices. >>>>>blkio-controller does not support network file systems (NFS) or other >>>>>QEMU remote block drivers (curl, Ceph/rbd, sheepdog) since they are >>>>>not host block devices. QEMU I/O throttling works with all types of >>>>>-drive and therefore complements blkio-controller. >>>>The first question that pops into my mind is: Should a user need to understand >>>>when to use the cgroups blkio-controller vs. the QEMU I/O throttling method? In >>>>my opinion, it would be nice if libvirt had a single interface for block I/O >>>>throttling and libvirt would decide which mechanism to use based on the type of >>>>device and the specific limits that need to be set. >>>Yes, I agree it would be simplest to pick the right mechanism, >>>depending on the type of throttling the user wants. More below. >>> >>>>>I/O throttling can be applied independently to each -drive attached to >>>>>a guest and supports throughput/iops limits. For more information on >>>>>this QEMU feature and a comparison with blkio-controller, see Ryan >>>>>Harper's KVM Forum 2011 presentation: >>>>>http://www.linux-kvm.org/wiki/images/7/72/2011-forum-keep-a-limit-on-it-io-throttling-in-qemu.pdf >>>> From the presentation, it seems that both the cgroups method the the qemu method >>>>offer comparable control (assuming a block device) so it might possible to apply >>>>either method from the same API in a transparent manner. Am I correct or are we >>>>suggesting that the Qemu throttling approach should always be used for Qemu >>>>domains? >>>QEMU I/O throttling does not provide a proportional share mechanism. >>>So you cannot assign weights to VMs and let them receive a fraction of >>>the available disk time. That is only supported by cgroups >>>blkio-controller because it requires a global view which QEMU does not >>>have. >>> >>>So I think the two are complementary: >>> >>>If proportional share should be used on a host block device, use >>>cgroups blkio-controller. >>>Otherwise use QEMU I/O throttling. >>Stefan, >> >>Do you agree with introducing one new libvirt command blkiothrottle now? >>If so, i will work on the code draft to make it work. >> >>Danial and other maintainers, >> >>If you are available, can you make some comments for us?:) > >Seems you posted to wrong list? This should be discussed in libvir-list >instead. No, libvirt-list is where i want to post. > >And if you meant to post to libvir-list, then s/Danial/Daniel/ :-) Sorry, thanks for your correcting, Jintao. We have not met for several years. > >> >>Regards, >> >>Zhi Yong Wu >>>Stefan > > ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2011-09-01 4:53 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-08-30 2:55 [Qemu-devel] The design choice for how to enable block I/O throttling function in libvirt Zhi Yong Wu 2011-08-30 7:18 ` [Qemu-devel] [libvirt] " shu ming 2011-08-30 8:10 ` Zhi Yong Wu 2011-08-30 8:31 ` shu ming 2011-08-30 8:36 ` Zhi Yong Wu [not found] ` <CAJSP0QW1CPCokX=F5z7y==vn1S4wH0VtOaQ7oj4kC7f7uQM4MQ@mail.gmail.com> [not found] ` <20110830134636.GB29130@aglitke.rchland.ibm.com> [not found] ` <CAJSP0QUHm=y8XJC_KXRg7ufFZt3K_XDDfQb--sxjC+c0GjO8qg@mail.gmail.com> 2011-09-01 3:55 ` [Qemu-devel] [RFC] block I/O throttling: how to enable " Zhi Yong Wu 2011-09-01 4:21 ` Osier Yang 2011-09-01 4:51 ` Zhi Yong Wu
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).