Fast bittorrent tracker
As demonstrated here practically all of the CPU usage is from handling the TCP connections. The databases save function made only 0.3% of the flame graphs time in this example.
Go 1.13+ recommended for
git clone github.com/crimist/trakx cd trakx/install ./install.sh trakx status # "Trakx is not running"
Note: If you have other go program using expvar with netdata you'll have to manually add the trakx config,
install.sh will overwrite
- Open netdata python conf with
/etc/netdata/edit-config python.d.confand change
- Customize the url in
- Install netdata plugins with
./setup.shwill update without overwriting your config
fasttag will build without IP, seeds, and leeches metrics which will speed up trakx
herokutag will build the service for app engines, this means that when executed the binary will immediatly run the tracker
- If you're going to be serving a lot of clients take a look at the sysctl tuning the resources section. This is especially true if you're using the TCP tracker
- There's no guarantee that database saves work between go versions - by default I use
unsafeto read raw memory so if they change
structpadding or completely change byte slices it could break your save between versions. You can change the encoding method to
encodeBinary()to avoid this issue but it takes 3x more memory and is 7x slower.