免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4155 | 回复: 13
打印 上一主题 下一主题

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

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-07 22:50 |只看该作者 |正序浏览
尝试过在一个父类下设置多个不同 prio 的子类,却没感觉有什么不同啊?

[ 本帖最后由 platinum 于 2009-7-9 13:40 编辑 ]

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

谢谢 wendaozhe 指点方向

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

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

论坛徽章:
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
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
10 [报告]
发表于 2009-07-14 15:46 |只看该作者
原帖由 chenyx 于 2009-7-14 14:49 发表
这个应该可以结合iptables给packet打标记用U32匹配做到吧

u32 只是一个 tc 的 filter
filter 是用在不同的 qdics 上的
我觉得这个需求与 u32 无关

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
9 [报告]
发表于 2009-07-14 14:49 |只看该作者

回复 #8 platinum 的帖子

这个应该可以结合iptables给packet打标记用U32匹配做到吧

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

论坛徽章:
0
7 [报告]
发表于 2009-07-14 13:50 |只看该作者
呵呵,来了。

htb的调度机制是优先级高的先调度度。
优先级相同的采用缺陷轮训算法调度。

如何才能看出优先级的效果呢?
我感觉有两种情况能体现出优先级的效果:
1)父类借带宽的时候,优先级高的队列能借到更多的带宽。
2)当cpu很忙时,比如两个队列都打满流量,优先级高的队列得到调度的机会多,得到的带宽会多一些。

[ 本帖最后由 emmoblin 于 2009-7-14 16:20 编辑 ]

论坛徽章:
5
寅虎
日期:2015-01-20 09:16:52亥猪
日期:2015-01-21 14:43:44IT运维版块每日发帖之星
日期:2015-12-17 06:20:00每日论坛发贴之星
日期:2015-12-17 06:20:00每周论坛发贴之星
日期:2015-12-20 22:22:00
6 [报告]
发表于 2009-07-12 07:58 |只看该作者
帮版主顶一下
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP