我正在学习排队纪律,作为调整我们的碳-c中继群集networking堆栈的一部分。 我的理解是,排队规则层的存在仅仅是为了降低延迟,并为不同types的networking数据包提供公平性。 如果没有这层,驱动程序队列将被用作简单的FIFO,这对于延迟不是优先级的高networking负载来说是很好的。
我正在运行一个碳C中继群集,这意味着我不在乎延迟 – 我关心的是确保所有携带指标数据的数据包都被处理,并且没有被丢弃。 所以,我应该能够禁用排队纪律层,并调整驱动程序队列(增加驱动程序队列和套接字缓冲区以适应networking负载)。
那是对的吗? 有没有办法来禁用排队纪律层?
您可以使用net.core.default_qdisc sysctl选项来设置默认的net.core.default_qdisc 。 在你的情况下,你可以selectpfifo或noqueue。
然后,可以使用ip link set txqueuelen ${len} dev ${dev}来设置队列长度。
你可以在这里find更多的解释,例子和参考资料。