如何在多租户云环境中细粒度调整IBM AIX 7.1和Linux上的网络服务质量
清单 5. 添加根 -qdisc root@linuxserver:# tc qdisc add dev ethX0 root handle 10: htb root@linuxserver:# tc -s qdisc show dev eth0 qdisc htb 10: r2q 10 default 0 direct_packets_stat 29 Sent 3338 bytes 29 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 root@linuxserver:# tc -d qdisc show dev eth0 qdisc htb 10: r2q 10 default 0 direct_packets_stat 58 ver 3.17 创建子类策略 当创建了一个子类并将它附加到一个 qdisc 时,这将充当所有其他类的父类。该类的带宽参数等于接口的物理带宽的参数(这里假设接口物理带宽是 100 Mbps)。 清单 6. 添加一个子类 root@linuxserver:# tc class add dev ethX0 parent 10:0 classid 10:10 htb rate 100mbps root@linuxserver:# tc -s class show dev eth0 class htb 10:10 root prio 0 rate 800000Kbit ceil 800000Kbit burst 101600b cburst 101600b Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 1016 ctokens: 1016 root@linuxserver :# tc -d class show dev eth0 class htb 10:10 root prio 0 quantum 200000 rate 800000Kbit ceil 800000Kbit burst 101600b/8 mpu 0b overhead 0b cburst 101600b/8 mpu 0b overhead 0b level 0 您可以使用 ethtool 命令找到以太网卡的物理带宽,如下所示。有关 ethtool 命令的更多信息,参见 Red Hat Linux 发行版提供的手册。 清单 7. 在 Linux 服务器上使用 ethtool 命令识别物理网络带宽 root@linuxserver:# ethtool ethX0 向创建的子类添加一个叶类 添加一个叶类,其速度由方案中 AIX 客户端选择的参数确定。在下面的例子中,AIX 客户端选择的网络速度选项 1Mbps。 清单 8. 添加一个叶类 root@linuxserver:# tc class add dev ethX0 parent 10:10 classid 10:100 htb rate 1mbps root@linuxserver:# tc -s class show dev eth0 class htb 10:10 root rate 800000Kbit ceil 800000Kbit burst 101600b cburst 101600b Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 1016 ctokens: 1016 class htb 10:100 parent 10:10 prio 0 rate 8000Kbit ceil 8000Kbit burst 2600b cburst 2600b Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 2600 ctokens: 2600 root@localhost :# tc -d class show dev eth0 class htb 10:10 root rate 800000Kbit ceil 800000Kbit burst 101600b/8 mpu 0b overhead 0b cburst 101600b/8 mpu 0b overhead 0b level 7 class htb 10:100 parent 10:10 prio 0 quantum 100000 rate 8000Kbit ceil 8000Kbit burst 2600b/8 mpu 0b overhead 0b cburst 2600b/8 mpu 0b overhead 0b level 0 向创建的子类附加一个 qdisc 根据公平排队算法,向 qdisc 附加一个随机公平排队 (SFQ),它属于排队策略集合。 查看本栏目更多精彩内容:http://www.bianceng.cn/OS/unix/ 清单 9. 向子类添加一个 qdisc root@linuxserver:# tc qdisc add dev ethX0 parent 10:100 sfq quantum 1514b perturb 15 root@linuxserver:# tc -s qdisc show dev eth0 qdisc htb 10: r2q 10 default 0 direct_packets_stat 256 Sent 37768 bytes 256 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 qdisc sfq 8002: parent 10:100 limit 128p quantum 1514b perturb 15sec Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 root@linuxserver:# tc -d qdisc show dev eth0 qdisc htb 10: r2q 10 default 0 direct_packets_stat 286 ver 3.17 qdisc sfq 8002: parent 10:100 limit 128p quantum 1514b flows 128/1024 perturb 15sec 在这里,quantum 用作添加子类的选项(在 清单 9 中),指数据流中在轮到下一个队列之前允许从队列中去掉的字节数量。 向已创建的叶子类附加一个过滤器 清单 10. 向叶子类添加一个过滤器 root@linuxserver:# tc filter add dev ethX0 protocol ip parent 10:0 prio 5 u32 match ip dst 172.18.10.40 flowid 10:100 root@linuxserver:# tc -s filter show dev eth0 filter parent 10: protocol ip pref 5 u32 filter parent 10: protocol ip pref 5 u32 fh 800: ht divisor 1 filter parent 10: protocol ip pref 5 u32 fh 800::800 order 2048 key ht 800 bkt 0 flowid 10:100 rule hit 30 success 0) match 097a7a04/ffffffff at 16 (success 0 ) root@linuxserver:# tc -d filter show dev eth0 filter parent 10: protocol ip pref 5 u32 filter parent 10: protocol ip pref 5 u32 fh 800: ht divisor 1 filter parent 10: protocol ip pref 5 u32 fh 800::800 order 2048 key ht 800 bkt 0 flowid 10:100 match 097a7a04/ffffffff at 16 (编辑:源码网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |