Recently started in debug mode on Transmission and I see:
[17:42:40.319] UDP Failed to set receive buffer: requested 4194304, got 262142 (tr-udp.c:75)
[17:42:40.319] UDP Please add the line "net.core.rmem_max = 4194304" to /etc/sysctl.conf (tr-udp.c:80)
[17:42:40.319] UDP Failed to set send buffer: requested 1048576, got 262142 (tr-udp.c:86)
[17:42:40.319] UDP Please add the line "net.core.wmem_max = 1048576" to /etc/sysctl.conf (tr-udp.c:91)
By tuning the two variables, higher throughput can be achieved more easily using uTP.
Here’s the relevant part from the changeset :
Since we are using a single UDP socket to implement multiple UTP sockets,
and since we are not always timely in servicing an incoming UDP packet,
it is important to use a large receive buffer. The send buffer is probably
less critical, we increase it nonetheless.
Four megabytes might seem huge for embedded clients, but running behind a dedicated connection, it might even become too small. I recommend using 16 megabytes for receive buffering and 4 for the send buffer. That is, because uTP implements a retransmission algorithm and by scaling up the buffers we can achieve fewer retransmits because of dropped datagrams. Let’s set it up that way.
Check actual settings:
do the modifications:
echo 'net.core.rmem_max = 16777216' >> /etc/sysctl.conf
echo 'net.core.wmem_max = 4194304' >> /etc/sysctl.conf