免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: platinum
打印 上一主题 下一主题

请教一下,HTB 里的 prio 究竟有什么用处?emmoblin 请进! [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-07-14 16:25 |只看该作者
原帖由 platinum 于 2009-7-14 14:44 发表
那么有没有可能实现这个需求呢?
不管网络忙不忙,A 的数据到来了,别的都避让,就让 A 先过,如果 A 没跑满整个带宽,其他人才能吃“残羹剩饭”?



简单的方法是:
把A的优先级设置成最高,其他的都比他低,这样基本可以达到你的要求。

还有一种麻烦点的方法。
查看htb的代码,在htb_enqueue时,如果:
        if (skb->priority == sch->handle)
                return HTB_DIRECT;        /* X:0 (direct flow) selected */
也就是说skb->priority 与 队列的handle相等,一般式0x10000

这种包不进入htb调度,而是直接发送。

论坛徽章:
0
12 [报告]
发表于 2009-07-14 16:59 |只看该作者
原帖由 emmoblin 于 2009-7-14 16:25 发表
简单的方法是:
把A的优先级设置成最高,其他的都比他低,这样基本可以达到你的要求。

但是我看网上很多教程,都是在 root 下挂一个(仅一个)htb 队列
在这个队列下面挂很多 class

兄弟说的 A 是队列还是 class 啊
htb 的 prio 是设置在 class 上的

我是这样做的
qdisc htb 1: root default 1:12
class htb 1:1 root rate 2M ceil 2M
class htb 1:11 parent 1:1 prio 0 rate 1M ceil 2M
class htb 1:12 parent 1:2 prio 1 rate 1M ceil 2M
不知道对不对?这样理论上 11 比 12 会先使用剩余的 1M 带宽

论坛徽章:
0
13 [报告]
发表于 2009-07-15 08:55 |只看该作者
原帖由 platinum 于 2009-7-14 14:44 发表
那么有没有可能实现这个需求呢?
不管网络忙不忙,A 的数据到来了,别的都避让,就让 A 先过,如果 A 没跑满整个带宽,其他人才能吃“残羹剩饭”?

不知hfsc能不能满足版主的要求,hfsc不是有real-time模式吗?

论坛徽章:
0
14 [报告]
发表于 2009-07-15 10:28 |只看该作者
还真没研究过 hfsc,但是已经看到了内核支持这种算法
还需要查一些资料,包括 hfsc 的特点,以及 hfsc 的使用方法,再测试一下才知道
现在的 tc 支持吗?
我的 iproute2 版本是 2.6.28

谢谢 wendaozhe 指点方向
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP