Wido, I agree with you.
Obviously we can not merge it into 4.2 while change it in 4.3. I will change it next week. If possible, I will investigate other hypervisors support in the Testing/Bug Fixes window (3/6/2013 to 30/6/2013). -Wei 2013/5/31 Wido den Hollander <w...@widodh.nl> > Hi Wei, > > > On 05/31/2013 03:13 PM, Wei ZHOU wrote: > >> Hi Wido, >> >> Thanks. Good question. >> >> I thought about at the beginning. Finally I decided to ignore the >> difference of read and write mainly because the network throttling did not >> care the difference of sent and received bytes as well. >> > > That reasoning seems odd. Networking and disk I/O completely different. > > Disk I/O is much more expensive in most situations then network bandwith. > > > Implementing it will be some copy-paste work. It could be implemented in >> few days. For the deadline of feature freeze, I will implement it after >> that , if needed. >> >> > It think it's a feature we can't miss. But if it goes into the 4.2 window > we have to make sure we don't release with only total IOps and fix it in > 4.3, that will confuse users. > > Wido > > -Wei >> >> >> >> >> 2013/5/31 Wido den Hollander <w...@widodh.nl> >> >> Hi Wei, >>> >>> >>> On 05/30/2013 06:03 PM, Wei ZHOU wrote: >>> >>> Hi, >>>> I would like to merge disk_io_throttling branch into master. >>>> If nobody object, I will merge into master in 48 hours. >>>> The purpose is : >>>> >>>> Virtual machines are running on the same storage device (local storage >>>> or >>>> share strage). Because of the rate limitation of device (such as iops), >>>> if >>>> one VM has large disk operation, it may affect the disk performance of >>>> other VMs running on the same storage device. >>>> It is neccesary to set the maximum rate and limit the disk I/O of VMs. >>>> >>>> >>>> Looking at the code I see you make no difference between Read and Write >>> IOps. >>> >>> Qemu and libvirt support setting both a different rate for Read and Write >>> IOps which could benefit a lot of users. >>> >>> It's also strange, in the polling side you collect both the Read and >>> Write >>> IOps, but on the throttling side you only go for a global value. >>> >>> Write IOps are usually much more expensive then Read IOps, so it seems >>> like a valid use-case where that an admin would set a lower value for >>> write >>> IOps vs Read IOps. >>> >>> Since this only supports KVM at this point I think it would be of great >>> value to at least have the mechanism in place to support both, >>> implementing >>> this later would be a lot of work. >>> >>> If a hypervisor doesn't support setting different values for read and >>> write you can always sum both up and set that as the total limit. >>> >>> Can you explain why you implemented it this way? >>> >>> Wido >>> >>> The feature includes: >>> >>>> >>>> (1) set the maximum rate of VMs (in disk_offering, and global >>>> configuration) >>>> (2) change the maximum rate of VMs >>>> (3) limit the disk rate (total bps and iops) >>>> JIRA ticket: >>>> https://issues.apache.org/****jira/browse/CLOUDSTACK-1192<https://issues.apache.org/**jira/browse/CLOUDSTACK-1192> >>>> <ht**tps://issues.apache.org/jira/**browse/CLOUDSTACK-1192<https://issues.apache.org/jira/browse/CLOUDSTACK-1192> >>>> > >>>> >>>> FS (I will update later) : >>>> https://cwiki.apache.org/****confluence/display/CLOUDSTACK/****<https://cwiki.apache.org/**confluence/display/CLOUDSTACK/**> >>>> VM+Disk+IO+Throttling<https://**cwiki.apache.org/confluence/** >>>> display/CLOUDSTACK/VM+Disk+IO+**Throttling<https://cwiki.apache.org/confluence/display/CLOUDSTACK/VM+Disk+IO+Throttling> >>>> > >>>> >>>> Merge check list :- >>>> >>>> * Did you check the branch's RAT execution success? >>>> Yes >>>> >>>> * Are there new dependencies introduced? >>>> No >>>> >>>> * What automated testing (unit and integration) is included in the new >>>> feature? >>>> Unit tests are added. >>>> >>>> * What testing has been done to check for potential regressions? >>>> (1) set the bytes rate and IOPS rate on CloudStack UI. >>>> (2) VM operations, including >>>> deploy, stop, start, reboot, destroy, expunge. migrate, restore >>>> (3) Volume operations, including >>>> Attach, Detach >>>> >>>> To review the code, you can try >>>> git diff c30057635d04a2396f84c588127d7e****be42e503a7 >>>> f2e5591b710d04cc86815044f5823e****73a4a58944 >>>> >>>> Best regards, >>>> Wei >>>> >>>> [1] >>>> https://cwiki.apache.org/****confluence/display/CLOUDSTACK/****<https://cwiki.apache.org/**confluence/display/CLOUDSTACK/**> >>>> VM+Disk+IO+Throttling<https://**cwiki.apache.org/confluence/** >>>> display/CLOUDSTACK/VM+Disk+IO+**Throttling<https://cwiki.apache.org/confluence/display/CLOUDSTACK/VM+Disk+IO+Throttling> >>>> > >>>> [2] refs/heads/disk_io_throttling >>>> [3] >>>> https://issues.apache.org/****jira/browse/CLOUDSTACK-1301<https://issues.apache.org/**jira/browse/CLOUDSTACK-1301> >>>> <ht**tps://issues.apache.org/jira/**browse/CLOUDSTACK-1301<https://issues.apache.org/jira/browse/CLOUDSTACK-1301> >>>> > >>>> <ht**tps://issues.apache.org/**jira/**browse/CLOUDSTACK-2071<http://issues.apache.org/jira/**browse/CLOUDSTACK-2071> >>>> <**https://issues.apache.org/**jira/browse/CLOUDSTACK-2071<https://issues.apache.org/jira/browse/CLOUDSTACK-2071> >>>> > >>>> >>>>> (**CLOUDSTACK-1301 >>>>> >>>> >>>> - VM Disk I/O Throttling) >>>> >>>> >>>> >>> >> >