I think guaranteeing the minimum I/O bandwidth is very important. In the business site, especially in streaming service system, administrator requires the functionality to satisfy QoS or performance of their service. Of course, IO throttling is important, but, personally, I think guaranteeing the minimum bandwidth is more important than limitation of maximum bandwidth to satisfy the requirement in real business sites.Correct. Proportional bandwidth automatically allows to guarantee minPlease note that the only thing we can do is to guarantee minimum3. & 4. & 5. - I/O bandwidth shaping & General design aspectsUse a deadline-based IO scheduling could be an interesting path to be
The implementation of an I/O scheduling algorithm is to a certain extent
influenced by what we are trying to achieve in terms of I/O bandwidth
shaping, but, as discussed below, the required accuracy can determine
the layer where the I/O controller has to reside. Off the top of my
head, there are three basic operations we may want perform:
- I/O nice prioritization: ionice-like approach.
- Proportional bandwidth scheduling: each process/group of processes
has a weight that determines the share of bandwidth they receive.
- I/O limiting: set an upper limit to the bandwidth a group of tasks
can use.
explored as well, IMHO, to try to guarantee per-cgroup minimum bandwidth
requirements.
bandwidth requirement when there is contention for an IO resource, which
is precisely what a proportional bandwidth scheduler does. An I missing
something?
requirements (instead of IO limiting approach, that needs additional
mechanisms to achive this).
In any case there's no guarantee for a cgroup/application to sustain
i.e. 10MB/s on a certain device, but this is a hard problem anyway, and
the best we can do is to try to satisfy "soft" constraints.
And I know Andreaâs io-throttle patch supports the latter case well and it is very stable. But, the first case(guarantee the minimum bandwidth) is not supported in any patches.
Is there any plans to support it? and Is there any problems in implementing it?
I think if IO controller can support guaranteeing the minimum bandwidth and work-conserving mode simultaneously, it more easily satisfies the requirement of the business sites.
Additionally, I didnât understand âProportional bandwidth automatically allows to guarantee min
requirementsâ and âsoft constraintsâ.
Can you give me a advice about this ? Thanks in advance.
Dong-Jae Kang
I think this is what dm-ioband does.
Let's say you make two groups share the same disk, and give them
70% of the bandwidth the disk physically has and 30% respectively.
This means the former group is almost guaranteed to be able to use
70% of the bandwidth even when the latter one is issuing quite
a lot of I/O requests.
Yes, I know there exist head seek lags with traditional magnetic disks,
so it's important to improve the algorithm to reduce this overhead.
And I think it is also possible to add a new scheduling policy to
guarantee the minimum bandwidth. It might be cool if some group can
use guranteed bandwidths and the other share the rest on proportional
bandwidth policy.
Thanks,
Hirokazu Takahashi.