我正在尝试使用tc为来自网络服务器的响应添加延迟,以便模拟WAN。 我找到了一些相关的帖子并尝试了命令:
tc qdisc add dev eth0 root netem delay 100ms
我正在使用10G网卡来发出大约相当于3Gbps的大量请求。使用tc增加延迟后,我发现吞吐量大幅下降,响应延迟时间接近3秒。
我是否在上述命令中遗漏了某些内容,它除了增加延迟外还限制了速率/吞吐量?
N.B tc qdisc返回以下内容:
qdisc netem 8005: dev eth0 root refcnt 72 limit 1000 delay 100.0ms 10.0ms rate 10000Mbit
答案 0 :(得分:1)
首先,我认为tc无法以如此高的数据速率处理数据包。几年前,当我玩它时,我的吞吐量也有所下降。我使用了10GbE和40GbE。
不幸的是,我现在无法访问此类硬件。
我建议您在模拟延迟100毫秒时检查缓冲区大小。数据包在某处丢失并影响您的吞吐量。增加的延迟可能是因为数据包在被丢弃多次(小缓冲区大小)或排队很长时间(非常大的缓冲区大小)后进入目的地