服务器系统CentOS 5, 网内还有其它设备对外提供服务。
# uname -rvp
2.6.18-238.12.1.el5 #1 SMP Tue May 31 13:22:04 EDT 2011 x86_64
# ethtool -i eth0
driver: bnx2
version: 2.0.8-rh
firmware-version: bc 4.4.1 UMP 1.1.9
bus-info: 0000:03:00.0
---------------
服务器性能足够,通过80端口提供服务,不限量的话流量能跑满eth0,现在我想限速到最高450mbit,以免影响到其它设备的服务,但是限速貌似不是很灵,还是跑到600左右(之后使用iptables 把新连接给REJECT喽)请达人帮忙看看脚本有什么问题没? #!/bin/bash
tc qdisc del dev eth0 root 2>/dev/null
tc qdisc add dev eth0 root handle 1: htb default 20
tc class add dev eth0 parent 1: classid 1:1 htb rate 450mbit ceil 450mbit
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 400mbit ceil 400mbit
tc class add dev eth0 parent 1:1 classid 1:20 htb rate 30mbit ceil 50mbit
tc class add dev eth0 parent 1:1 classid 1:30 htb rate 20mbit ceil 50mbit
tc qdisc add dev eth0 parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev eth0 parent 1:20 handle 20: sfq perturb 10
tc qdisc add dev eth0 parent 1:30 handle 30: sfq perturb 10
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip sport 80 0xffff flowid 1:10
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip sport 22 0xffff flowid 1:30
问题的解决方案:见8楼。
tc -s class ls dev eth0
class htb 1:1 root rate 450000Kbit ceil 450000Kbit burst 57825b cburst 57825b
Sent 410270340209 bytes 188442731 pkt (dropped 0, overlimits 0 requeues 0)
rate 619391Kbit 35404pps backlog 0b 0p requeues 0
lended: 109 borrowed: 0 giants: 151676252
tokens: 835 ctokens: 835
ethtool -K tso off
关闭tso后,貌似正常了吖
see here -> https://bugzilla.redhat.com/show_bug.cgi?id=481546#c32
rpm -ivh http://people.redhat.com/jwilson/el5/269.el5/x86_64/kernel-2.6.18-269.el5.x86_64.rpm http://people.redhat.com/jwilson/el5/269.el5/x86_64/kernel-devel-2.6.18-269.el5.x86_64.rpm && reboot
跑了一下午,目前看起来蛮正常的
转