-
Notifications
You must be signed in to change notification settings - Fork 882
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Single connection throttling #661
Comments
这句话是什么意思?不通顺,看不懂。 你应该首先解释iperf3和wget的性能差异来自哪里。 然后看服务端和客户端是否有CPU bound的形况。 naiveproxy只是用一个普通TCP socket,并无特殊处理。 |
当/etc/sysctl.conf客户端和服务端没修改的时候,wget和iperf3,以及naive单线程/多线程都在188Mbps |
你应该自己去查具体socket运行时的内核配置差异。 我没有重现,没做任何内核设置,wget通过直连和通过naiveproxy单线程都可以运行到1000Mbps以上。只是接近1000Mbps时naive的CPU占用较高。 |
我可以重现,只有在高BDP链路可以重现。 与naive_single.pcap的图例反映类似的问题,netlog可以看到naive运行过程中有停顿。 |
是的,现在就是无法排查出停顿的原因,不知道是否和窗口大小有关 |
The local window size can be larger. Yass is using the same size with curl, aka 1000 MiB for reference curl/curl@de4b016 curl/curl#11043 |
我记得naive是单线程的,理论上来说单线程和多线程速度是一致的
理论上iperf3单线程速度已经达到了700Mbps, 但是naiveproxy实际测速单线程大约在188Mbps, 多线程在500Mbps, 如下所示
我应该如何修改参数?
配置信息
服务端客户端版本信息
客户端naive配置(没有使用insecure-concurrency=)
服务端和客户端
cat /etc/sysctl.conf
参数计算参考 Google-BDP速度测试
iperf3单线程测试
wget 单线程测试 (大约500Mbps)
单线程
多线程
TCP吞吐瓶颈分析
使用wireshark分析TCP吞吐量瓶颈,不太清楚是哪里的配置问题, iperf看起来还行,不过有部分包没收到(红色)降低tcp_wmem可以减少
如果客户端的windowsize不加以调整则,单线程和多线程,iperf最高(单线程多线程)速度为188Mbps
iperf3_single.pcap
naive_single.pcap
naive_multi.pcap
作为对比,健康TCP连接如图所示:
The text was updated successfully, but these errors were encountered: