Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
vms:bittorrent [2017/06/01 17:17]
admin [Transmission]
vms:bittorrent [2017/06/02 04:36] (current)
admin [Transmission]
Line 4: Line 4:
  
 We'll start with the installation of a **Transmission** server, based on a [[vms:​debian|Debian template]]. We'll start with the installation of a **Transmission** server, based on a [[vms:​debian|Debian template]].
 +
 +=== Installation ===
  
 <​Code:​json>​ <​Code:​json>​
Line 43: Line 45:
  
 For detailed instructions on how to use Transmission:​ [[https://​help.ubuntu.com/​community/​TransmissionHowTo]] For detailed instructions on how to use Transmission:​ [[https://​help.ubuntu.com/​community/​TransmissionHowTo]]
 +
 +=== System Configuration ===
 +
 +To avoid Transmission eating up all the system'​s resources, edit ''/​lib/​systemd/​system/​transmission-daemon.service'':​
 +
 +<​Code>​
 +> nano /​lib/​systemd/​system/​transmission-daemon.service
 +ADD @ end of [Service] section
 +[Service]
 +...
 +Nice=16
 +IOSchedulingClass=idle
 +CPUSchedulingPolicy=idle
 +MemoryMax=25M
 +MemoryHigh=35M
 +ProtectSystem=true
 +
 +> systemctl daemon-reload
 +</​Code>​
 +
 +Note that we reload daemons for our changes to take effect.
 +
 +=== UDP socket buffers ===
 +
 +Setting ''"​message-level":​ 3,''​ in ''/​var/​lib/​transmission-daemon/​info/​settings.json'',​ then monitoring ''/​var/​log/​syslog'',​ or better ''/​var/​log/​daemon.log''​ will show:
 +<​Code>​
 +Jun  2 04:18:24 transmission-20 transmission-daemon[4243]:​ [2017-06-02 04:​18:​24.532 CEST] UDP Failed to set receive buffer: requested 4194304, got 425984 (tr-udp.c:​78)
 +Jun  2 04:18:24 transmission-20 transmission-daemon[4243]:​ [2017-06-02 04:​18:​24.534 CEST] UDP Failed to set send buffer: requested 1048576, got 425984 (tr-udp.c:​89)
 +</​Code>​
 +
 +It seems Transmission is willing to get a 4MB receive buffer and a 1MB send buffer, while only 256K are available. We'll fix that using the following commands:
 +<​Code>​
 +> echo '​net.core.rmem_max = 16777216'​ >> /​etc/​sysctl.conf
 +> echo '​net.core.wmem_max = 4194304'​ >> /​etc/​sysctl.conf
 +> sysctl -p
 +</​Code>​
 +
 +For production servers with hundreds of connections 16MB receive and 4MB send buffers are recommended [[https://​trac.transmissionbt.com/​ticket/​4321| read more here...]]
 ===== mitorrent ===== ===== mitorrent =====
 [[https://​github.com/​da2x/​mitorrent]] [[https://​github.com/​da2x/​mitorrent]]