DHT网络性能优化建议
现有问题
DHT 节点查询 时产生大量udp包
运营商对udp包的发送量可能存在限制
超过的udp包会被直接丢弃 影响了网络中其他的udp流量
也影响了网络的整体稳定
现有解决方法
在不禁用DHT的情况下
可修改高级设置中的 network.max_udp_pkt_per_sec 限制每秒发送的udp数量
但这限制的是BC的全局udp发包量 似乎会同时影响到DNS 查询 和 udp tracker
而且这是限制udp发送量不是产生量
DHT的查询请求 积压在的UDP发送缓冲区内
尽管有 dht.udp_send_queue_threshold 选项限制 队列长度
但发包量设置较低时依然会产生大量积压
以至于到下一次DHT查询时 上次查询生成的包仍积压在缓冲区内
改进建议
修改查询频率
目前的DHT似乎是每隔一段较长的时间发起一次查询
并发udp量非常多 容易造成周期性的网络波动
也许可以缩短查询间隔 增加查询次数的同时减少每次的发起量
由单次大量 变为少量多次
以防止超过运营商的udp发包限制
或者DHT查询不设间隔 只控制查询量 与tcp发起类似
通过控制查询量来限制实际发包数
控制DHT节点总数
随着软件运行时间的增加 DHT节点数量也在不断增加
节点数量的增加使得维护节点产生的网络开销也在增加
也许可以限制DHT节点数量上限 以控制维护开销?