我正在使用tc
内核 2.6.38.8 进行流量整形。限制带宽有效,添加延迟有效,但是当使用延迟对带宽进行整形时,如果限制>1.5 Mbps 左右,则实现的带宽总是远低于限制。
例子:
tc qdisc del dev usb0 root
tc qdisc add dev usb0 root handle 1: tbf rate 2Mbit burst 100kb latency 300ms
tc qdisc add dev usb0 parent 1:1 handle 10: netem limit 2000 delay 200ms
产生 201 毫秒的延迟(来自 ping),但容量仅为 1.66 Mbps(来自 iperf)。如果我消除延迟,带宽正好是 2 Mbps。如果我指定 1 Mbps 和 200 ms RTT 的带宽,一切正常。我也尝试过 ipfw + dummynet,它产生了类似的结果。
我已经尝试在 Kconfig 中使用重建内核HZ=1000
——但这并没有解决问题。其他想法?