我正在学习队列规则,这是调整 carbon-c-relay 集群上的网络堆栈的一部分。我的理解是,队列规则层的存在只是为了降低延迟并为不同类型的网络数据包提供公平性。如果没有这一层,驱动程序队列将被用作简单的 FIFO,这对于延迟不是优先考虑的高网络负载来说已经足够了。
我正在运行 carbon-c-relay 集群,这意味着我不关心延迟 - 我关心的是确保所有携带指标数据的数据包都得到处理并且没有被丢弃。所以我应该能够禁用排队规则层并调整驱动程序队列(增加驱动程序队列和套接字缓冲区以适应网络负载。)
对吗?有没有办法禁用排队规则层?
答案1
您可以使用 sysctl 选项设置默认 qdisc net.core.default_qdisc
。根据您的情况,您可以选择 pfifo 或 noqueue。
然后,您可以使用 设置队列长度ip link set txqueuelen ${len} dev ${dev}
。
你可以找到更多解释、示例和参考资料这里。