1

I just compiled the transmission{-daemon,-cli} on my Debian 10 Buster, and installed it with some minor and major problems.

One of those minor ones is apparent failure to set UDP receive buffer / send buffer as per log:

[2019-05-23 12:45:40.950] UDP Failed to set receive buffer: requested 4194304, got 425984 (tr-udp.c:84)
[2019-05-23 12:45:40.950] UDP Please add the line "net.core.rmem_max = 4194304" to /etc/sysctl.conf (tr-udp.c:89)
[2019-05-23 12:45:40.950] UDP Failed to set send buffer: requested 1048576, got 425984 (tr-udp.c:95)
[2019-05-23 12:45:40.950] UDP Please add the line "net.core.wmem_max = 1048576" to /etc/sysctl.conf (tr-udp.c:100)

I would like the client to show me its maximum performance, so I am curious as to how to tune these two things on my system, which it proposes? 4 on 1 MiB does not seem much to me, but since I am no networking guy, please elaborate, if I can tune it to even higher numbers.


Hardware

ISP link speed:

Approx 30 / 25

Connection configuration: public static IPv4 with forwarded ports.


For the sake of completeness, let me mention other components as well, I don't know if this info is important here or not, so...

0

Following this old article helped. Let me mention the claimed solution first:

  1. Open this text file as root, be aware it is one of those important system files:

    /etc/sysctl.conf
    
  2. I added these two lines since I have enough memory; if you are for instance on an embedded system, you might want to re-consider applying these lines (we're setting 16 MiB for the receive buffer and 4 MiB for send buffer), I can't tell the actual running memory requirements yet:

    net.core.rmem_max = 16777216
    net.core.wmem_max = 4194304
    
  3. If you decided to add those lines above, you can re-read the config with:

    sysctl -p
    

    There is no need for a reboot to take effect.


Now, let me quote that web page on this:

This message tries to tell us, that for some reason, Transmission would like to have 4 Megabytes of receive buffer and 1 Megabyte send buffer for it’s UDP socket. It turns out that the support for uTP, the uTorrent transport protocol, is implemented using a single socket.

By tuning the two variables, higher throughput can be achieved more easily using uTP.


Since we’re using a single UDP socket to implement multiple uTP sockets, and since we’re not always timely in servicing an incoming UDP packet, it’s important to use a large receive buffer. The send buffer is probably less critical, we increase it nonetheless.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.