我一直在使用XBT 追踪(ABitTorrent 追踪器)。 在德比安·兰尼大部分情况下。我的问题是,当跟踪器达到给定数量的对等点时,它就会死机。没有有用的调试消息,没有转储,什么都没有。最新的 Windows 版本确实提到了一个更改,说它修复了这个问题(我认为这是我们问题的根源),但由于我运行的是 Linux……
那么..我应该使用什么?在哪个操作系统上?
答案1
我们在 FreeBSD 上使用 XBT Tracker (XBTT) 已经有一段时间了。现在我们有大约 50 多万个对等点,并且数量还在快速增长。我们的公告间隔为 700 秒,非常短。
1. 我听说过的在 Linux 上针对 XBT Tracker 的唯一优化是:
#Backlog
net.core.netdev_max_backlog = 4096
net.core.somaxconn = 4096
# In case you use listen_check
net.ipv4.ip_local_port_range="1024 65535"
net.ipv4.tcp_syncookies = 1
#Timewait sockets (this can negatively impact clients under NAT)
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
不要忘记增加最大打开文件的数量:
ulimit -n 1000000
并保存更改至limits.conf
2. 我们的XBT Tracker使用以下补丁:增加监听队列长度
3. 此配置行可能会有所帮助:
listen_check = 0
而且我们也有非常短
read_files_interval = 2
write_db_interval = 3
4. 需要调整 MySQL,至少应增加
max_allowed_packet = 48M
5. 另外需要注意的是,在 Linux 上 XBTT 使用 epoll(),而在其他操作系统上它使用 select(),这不适合高负载。
附言:您可以查看开放追踪器如果没有什么帮助的话。但我没有测试过。