i'm learning about queueing discipline as part of tuning the network stack on our carbon-c-relay cluster. My understanding is that the queueing discipline layer exists solely to lower latency and provide fairness to different types of network packets. Without this layer the driver queue would be used as a simple FIFO which would be fine for high network loads where latency is not a priority.
I'm running a carbon-c-relay cluster, which means I don't care about latency - I care about making sure all of the packets carrying metrics data are processed and that none are dropped. So I should be able to disable the queueing discipline layer and tune the driver queue instead (increase both the driver queue and the socket buffers to accomodate the network load.)
Is that correct? Is there a way to disable the queueing discipline layer?
You can set the default qdisc with the
net.core.default_qdisc
sysctl option. In your case, you could choose pfifo or noqueue.Then, you can set the queue length with
ip link set txqueuelen ${len} dev ${dev}
.You can find some more explanations, examples, and references here.