Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
vms:bittorrent [2017/05/30 04:23] admin [Transmission] |
vms:bittorrent [2017/06/02 04:36] (current) admin [Transmission] |
||
---|---|---|---|
Line 5: | Line 5: | ||
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]]. | ||
- | <Code:bash> | + | === Installation === |
+ | |||
+ | <Code:json> | ||
> apt-get install transmission-daemon | > apt-get install transmission-daemon | ||
</Code> | </Code> | ||
Line 25: | Line 27: | ||
"incomplete-dir": "/var/lib/transmission/seeding", | "incomplete-dir": "/var/lib/transmission/seeding", | ||
"dht-enabled": true, | "dht-enabled": true, | ||
+ | "lpd-enabled": true, | ||
"pex-enabled": true, | "pex-enabled": true, | ||
"peer-limit-per-torrent": 10, | "peer-limit-per-torrent": 10, | ||
Line 37: | Line 40: | ||
"watch-dir": "/var/lib/transmission/seeding", | "watch-dir": "/var/lib/transmission/seeding", | ||
"watch-dir-enabled": true, | "watch-dir-enabled": true, | ||
+ | </Code> | ||
+ | |||
+ | For a complete description of all options: [[https://web.archive.org/web/20160428165927/https://trac.transmissionbt.com/wiki/EditConfigFiles]] | ||
+ | |||
+ | 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 ===== | ||
+ | [[https://github.com/da2x/mitorrent]] | ||
+ | |||
+ | First we must follow [[vms:python:dev|this installation guide]] to setup an appropriate python environment, we also need to have 'git' installed, so we can clone the GitHub repo. | ||
+ | |||
+ | === Install=== | ||
+ | <Code:bash> | ||
+ | > apt-get install git-core | ||
+ | > su py3 | ||
+ | > cd $HOME | ||
+ | > git clone https://github.com/da2x/mitorrent.git | ||
+ | > cd mitorrent | ||
+ | > mkvirtualenv mitorrent | ||
+ | > chmod +x mitorrent-runner.py | ||
+ | </Code> | ||
+ | |||
+ | ===Usage=== | ||
+ | <Code> | ||
+ | > su py3 | ||
+ | > cd $HOME/mitorrent | ||
+ | > workon mitorrent | ||
+ | > ./mitorrent-runner.py path/to/original/file > path/to/torrent/file.torrent | ||
</Code> | </Code> |