在现有 tc qdisc 之上添加额外的延迟

在现有 tc qdisc 之上添加额外的延迟

在具有现有多级 qdisc 设置的系统上,我们需要引入额外的延迟(至少是固定的,但通过较小的变化进行固定将是一个不错的选择)。

在 Linux 上执行此操作的规范方法是使用 qdisc netem。然而,这在这里不起作用,因为netem它不能与其他 qdisc 一起工作(这是一个有据可查限制,并且一位同事已经亲自验证)。

将虚拟机放置到不执行任何操作的计算机上,不仅netem看起来有点过分,而且还会使路由和 WLAN 配置变得非常复杂,因此我宁愿不采取这一步骤。

如果相关的话,当前的设置是htb(仅用于限制带宽……我们可能应该使用的,tbf但这是我加入时我们所拥有的)和fq_codelECN 标记的组合,两者都带有自定义补丁。我不反对将其修补到任何一个......

根据要求,这里是一个示例设置,使用 stock htb/fq_codel以便于测试:

#!/bin/mksh
set -ex
dev=eth0
rate=1000
sudo tc qdisc add dev $dev root handle 1: htb default 1
sudo tc class add dev $dev parent 1: classid 1:1 htb rate ${rate}kbit ceil ${rate}kbit prio 1
sudo tc qdisc add dev $dev parent 1:1 handle 2: fq_codel

相关内容