首页 > 数据库 > mysql教程 > 量子与r2q

量子与r2q

WBOY
发布: 2016-06-07 15:20:19
原创
1246 人浏览过

假设我们有 2 个具有相同父类的类:父类:ceil = rates = 100class 1:rate = 40 和 ceil = 100class 2:rate = 20 和 ceil = 100(所使用的数字只是理论上的,用于解释它是如何实现的)有效)两个班级都发送了

假设我们有两个具有相同父级的班级:

Parent : ceil = rate = 100
class 1 : rate = 40 and ceil = 100
class 2 : rate = 20 and ceil = 100
登录后复制
(所使用的数字只是理论上的,以解释其工作原理)

两个班级都在尽力发送。首先,即使它们具有不同的优先级,也允许它们发送足够的数据包来满足速率。 
但父级有一些剩余带宽:100 - 40 - 20 = 40。剩余带宽根据量子分配。每个类都可以轮流发送“量子”字节。

量子的计算方式为速率(以字节为单位)/ r2q。 r2q 默认为 10,如果您创建 htb qdisc,则可以推翻 r2q。如果您创建 htb 类,则 Quantum 可能会被否决。 Quantum 应大于 MTU (1500),以便您可以发送最大数据包 1 回合且小于 60000(在 htb qdisc 中硬编码,以防止类饥饿和过长的延迟)。 
量子误差不会影响功能,只会影响精度。它们还通过系统日志进行记录,因此它们会占用大量文件空间。

当类允许发送时发送的数据包仍会与速率/ceil/burst/cburst 进行匹配。因此,如果您不允许使用 burs/cburst 参数,大量子将不会创建突发。

用量子计数数据包可能会很奇怪。如果我们有低速率等级(速率 = 5kbit),则默认量子 = 5000 / 10 = 500 字节。但大多数数据包都超过 500 字节。 Htb 版本 1 和 2 使用 DRR,因此将发送大于 1000 字节的数据包,并且 它会记住它发送了多少数据,并等到数据包被偿还后再发送另一个数据包。因此,如果您发送 1000 字节,下次轮询该类时,将不允许您发送。 
Htb3 使用 WRR 调度程序。当数据包大小>量子已发送,它将被发送并记录量子太小的错误。但没有回报。 WRR 调度程序比 DRR 调度程序更快。所以确保量子更大 默认数据包大小。对于 15 kbyte/s 和默认 r2q,量子数为 1500,这正是最大数据包大小。如果您想将 htb 调整为小于 15 kbyte/s 的速率,您可以手动设置 r2q 和/或量子。

示例 
父级为 30,有 3 个子级 c1、c2 和 c3。 3 个类别的速率为 10。类别 2 的量子 = 1,类别 3 的量子 = 2。类别 1 发送 4,因此它得到 4。C2 和 c3 正在发送尽可能多的数据,因此 c2 和 c3 得到 10(速率总是 使满意)。父级仍有 6 个可在 c2 和 c3 之间分配。它将根据量子进行分配,因此 c2 得到 2,c3 得到 4。

class rate traffic quantum bandwidth
c1 10 4 ? 4
c2 10 +++ 1 10+2=12
c3 10 +++ 2 10+4=14
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板