论坛风格切换切换到宽版
  • 1346阅读
  • 7回复

[问题求助]请教:关于TC带宽控制“子类的rate之和 * 父类rate”??? [复制链接]

上一主题 下一主题
离线fff000.
 
发帖
2145
C币
-60561
威望
396
贡献值
1
银元
-1
铜钱
4779
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
请教:看了不少.关于使用TC后的.带宽控制测试结论,说“子类的rate之和 > 父类rate”这种设计是无效的,.
      为什么我用TC后,测试时,“子类的.rate之.和 > 父类rate” 这种情况有效???投资

请帮忙分析:

网络环境:

   ho.st1  host2           女人
             |
      .       |    eth2. (192.168.1.11).
    .------------------               . 虚拟主机
    |       F.W        |电脑
    ----------------.--    健康
        .    |    eth3  (172.16.1..1)(        游戏          )
            |

   .      FTP server.

TC规则如下:

$TC qdisc .add  dev eth2   ro.ot    handle 3: htb default 21域名
$TC class add  dev eth.2   parent 3:    classid. 3:1   htb  rate 100Mbit ceil 100Mbi.t    外汇
$TC class add  dev eth2   parent 3:1   classid 3:21  htb  rate. 3Mbit .  ceil 3Mb.it   prio 1 .
$TC class add  dev eth2   pare.nt 3:21  classid 3:22  htb . rate 2.Mbit   ceil 2Mbit   prio 2 (        游戏          )
$TC qdisc add.  dev eth2   paren.t 3:22  handle  22:   sfq             电子
$TC class add  dev eth2   parent 3:21  classid 3.:23  htb  .rate 3Mbit.   ceil 3Mbit   prio 3 --- 印刷
$TC qdisc add  dev eth2   parent 3:23  handl.e  2.3:   sfq外贸

做dnat后,host1,ho.st2访问FTP,当我同时在h.ost1 和 host2 上从FTP下载文件时,他们都能达到自己的rate,.
上述测试存是否正确呢?

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
发帖
1973
C币
-198791
威望
339
贡献值
1
银元
-1
铜钱
4278
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13
Re:请教:关于TC带宽控制“子类的rate之和
理论上是符合的,测试只有ftp的数据请求,没有其他的请求,当然都给ftp的用了。
多多交流呀
加QQ

离线oky3914.
发帖
2173
C币
-198637
威望
427
贡献值
1
银元
-3
铜钱
4838
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-13
Re:请教:关于TC带宽控制“子类的rate之和
???那为什么我把两个子类的rate都设置为5M, 父类rate仍为3M,为什么子类也可以达到各自的rate?

离线zxlovest.
发帖
2235
C币
-60023
威望
421
贡献值
1
银元
-1
铜钱
5033
人人网人气币
0
只看该作者 地板  发表于: 2010-04-13
Re:请教:关于TC带宽控制“子类的rate之和
我看了htb实现的原理,当子类的令牌能得到保证时就可以直接出队,
跟父类没有关系,只有当大于rate小ceil的时候,需要向父类借用带宽时,
才会跟父类有关系,看父类是否有令牌可以给子类。

所以并不是像表面上认为的,父类的令牌分给子类的令牌。其实每个类都有自己的
令牌桶,没有谁分给谁之说,只是子类的令牌不够时,把队列挂到父类的队列中。
这时就用父类的令牌桶提供令牌了。

所以子类,父类的rate和ceil并没有什么之和相等或者不可超过的关系。

如果我没说清楚,咱们再讨论。

离线eddyc.
发帖
2168
C币
-60282
威望
393
贡献值
1
银元
-1
铜钱
4729
人人网人气币
0
只看该作者 4楼 发表于: 2010-04-13
Re:请教:关于TC带宽控制“子类的rate之和
谢谢各位的回复,继续琢磨测试中~~~~

离线beleen.
发帖
2112
C币
-60346
威望
394
贡献值
1
银元
-1
铜钱
4715
人人网人气币
0
只看该作者 5楼 发表于: 2010-04-13
Re:请教:关于TC带宽控制“子类的rate之和
本帖最后由 lin_wang 于 2010-03-19 21:32 编辑

回复 4# emmoblin


那请教下, 用 tc change 频繁更改(2秒一次) htb 的子类时 dmesg 里报 htb: too many events! 是怎么回事呢? 有什么影响?

我看了htb的源码, 那段不是很明白 /**

* htb_do_events - make mode changes to classes at the level

*

* Scans event queue for pending events and applies them. Returns time of

* next pending event (0 for no event in pq, q->now for too many events).

* Note: Applied are events whose have cl->pq_key <= q->now.

*/

static psched_time_t htb_do_events(struct htb_sched *q, int level,

                                   unsigned long start)

{

        /* don't run for longer than 2 jiffies; 2 is used instead of

           1 to simplify things when jiffy is going to be incremented

           too soon */

        unsigned long stop_at = start + 2;

        while (time_before(jiffies, stop_at)) {

                struct htb_class *cl;

                long diff;

                struct rb_node *p = rb_first(&q->wait_pq[level]);



                if (!p)

                        return 0;



                cl = rb_entry(p, struct htb_class, pq_node);

                if (cl->pq_key > q->now)

                        return cl->pq_key;



                htb_safe_rb_erase(p, q->wait_pq + level);

                diff = psched_tdiff_bounded(q->now, cl->t_c, cl->mbuffer);

                htb_change_class_mode(q, cl, &diff);

                if (cl->cmode != HTB_CAN_SEND)

                        htb_add_to_wait_tree(q, cl, diff);

        }



        /* too much load - let's continue after a break for scheduling */

        if (!(q->warned & HTB_WARN_TOOMANYEVENTS)) {

                printk(KERN_WARNING "htb: too many events!\n");

                q->warned |= HTB_WARN_TOOMANYEVENTS;

        }



        return q->now;

}
复制代码

离线yueyehan.
发帖
2105
C币
-235151
威望
397
贡献值
1
银元
-3
铜钱
4728
人人网人气币
0
只看该作者 6楼 发表于: 2010-04-13
Re:请教:关于TC带宽控制“子类的rate之和
回复 6# lin_wang


    多次频繁的change是没有问题的。

这个too many event的提示的意思的是,进入do_event的次数太多了,可能会有点控制的不准确,但影响不大

离线17772.
发帖
2092
C币
-60655
威望
392
贡献值
1
银元
-3
铜钱
4723
人人网人气币
0
只看该作者 7楼 发表于: 2010-04-13
Re:请教:关于TC带宽控制“子类的rate之和


哦, 酱紫, 多谢指教!
快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
上一个 下一个