UDP Packet Send Limit

With UDP-based transports such as multicast, fast sending programs can overwhelm slower receiving programs, which could result in retransmission-related latency, extra resource consumption of CPU cycles and network bandwidth, retransmission storms, or data loss. To prevent these scenarios, you can limit the rate at which sending programs transmit UDP packets to the network.

Administrators can empirically tune the flow of data packets from sending programs by adjusting the packet send limit, which is a required property of UDP-based transports.

Limiting the packet send rate also limits the data send rate (bytes per second), because the data send rate varies with the packet rate and the data sizes of the packets. However, even if the data send rate is low, a high packet send rate can still overwhelm a receiver. Hardware limits on the number of NIC I/O interrupts translate into limits on the receiver’s inbound message rate. When an inbound packet arrives, the cost of the NIC interrupt is independent of the size of the data in the packet.

General Guidelines

  • Tune the packet send limit parameter on the senders’ transports. (This sending parameter has no effect at the receiving end.)
  • When an application sends batches of several messages in its send calls, it is probably already using UDP bandwidth efficiently. For best results in most situations, set the packet send limit to zero. However, if slow receivers report dataloss, then consider tuning the packet send limit (see the next item).
  • When an application rapidly sends one small message per send call, then adjust the packet send limit to increase throughput efficiency. Use these guidelines as you empirically tune this parameter:
    • The general goal is to determine the highest value that does not overwhelm any receiving hardware.
    • To begin, try a value within the range 50,000 to 150,000 packets per second. Select an initial value based on capacity of the receiving CPUs to handle NIC interrupts.
    • To reduce average latency, try raising the value.
    • If the number of packets overwhelms any receiver, try a lower value. A lower value raises average throughput by utilizing MTU capacity more efficiently.

To configure, see Packet Send Limit.