We've been using XBT Tracker (XBTT) on FreeBSD for quite a while. Now we have about 500k+ peers, and they are rapidly growing. And we have an announce interval of 700 second which is very low.
1. The only optimizations for XBT Tracker I've heard of in Linux are:
#Backlog
net.core.netdev_max_backlog = 4096
net.core.somaxconn = 4096
net.ipv4.ip_local_port_range="1024 65535"
net.ipv4.tcp_syncookies = 1
#Timewait sockets
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
#Firewall conntrack
net.ipv4.netfilter.ip_conntrack_max = 1048576
net.nf_conntrack_max = 1048576
Do not forget to increase maximum number of opened files:
ulimit -n 1000000
and save changes to limits.conf
2. Our XBT Tracker uses the
patch Extended BitTorrent Client and Tracker
3. This configuration line can be helpful:
listen_check = 0
and also we have very short
read_files_interval = 2
write_db_interval = 3
4. MySQL tuning is required, as minimum you should increase
max_allowed_packet = 48M
PS. You can check out Extended BitTorrent Client and Tracker if nothing helps. But I didn't test it.