#29754·solana

控点/未取出节点的拥挤控制

作者: KirillLykov创建于 2023年1月18日更新于 2025年1月5日

□ 问题

如果客户端向验证器发送txs,网络空闲度也很大,tps非常低(见下表). 相反,如果我们把客户端/服务器放在一个数据中心,TPS将高出100k.

□ 问题设置

单节点私人网络 :

  • 阿姆斯特丹有长凳的客户。
  • 多伦多验证员。

似乎是由于QUIC得到的窗口大小设置此处. 如@lijunwangs所指出,它是由“UIC UNSTAKED RECEIVE WINDOW RATIO”调整的见quic.rs:25,默认为`1'。 将这一参数设定为 " 10 " (利害关系的最大值)可以改善情况,但不能比UDP结果好。

议定书 {\fn黑体\fs20\shad2\2aH82\3aH20\4aH33\fscx95\3cH592001\be1}你还好吧? 维基文库中相关的原始文献: 维基文库中相关的原始文献: 维基文库中相关的原始文献: 维基文库中相关的原始文献: 维基文库中相关的原始文献: 维基语录 QQUIC QQ1( 默认) @ 138QX QQUICQQ10( 默认计分) QQ1256QQ

为了进行实验,我还尝试了“UIC MA UNSTAKED CONCURRENT STRAMS = 1024”(默认为128),以及“UNIC UNSTAKED RECEIVE WINDOW RATIO = 10”:TPS = 1478.

□ 后果

如果客户端应用程序使用"TPUClient"发送tx,TPS的相差很大. 之所以出现这种情况,是因为`贸易协调局 ' 将试图向下一任领导人派遣人员,而TPS将与网络的延迟密切相关。 相反,如果我们选择“ThinClient”并总是发送到最接近的验证器,TPS会更高,因为验证器会将 txs 转发给领导器,并使用堆叠的 quic 配置.

□ 当前执行情况摘要

未取出节点:窗口大小被设定为最小(1*MTU),这会导致在有包滴的网络上PPS低. 固定节点:窗口大小仅取自木桩,范围为 " 2.10 " 。

□ 建议的解决办法

Atm,讨论一个拥堵控制模型,考虑到验证器负载,最大限度地利用网络.

为可再生测试准备一个设置是重要的子任务.

与@lijunwangs和@ilia-bobyr讨论过一点

内容来源: solana-labs/solana