关于端口转发速率的疑问

2020-10-04 23:20:24 +08:00
 nowjust

请教下各位大牛,我有一台国内的 nat vps,我试过直接从 vps 上通过 scp 或 wget 的方式下载欧洲的服务器里的资源,速率可以达到 7-8M/s 。我在本地通过 scp 方式下载 nat vps 的资源,速率可达到 10M 。 可是通过 nat vps 上设置的端口转发方式,从本地下载欧洲的服务器里的资源最多只有 3M/s,我先怀疑是不是转发工具性能的问题,但我先后试了 socat 、haproxy 、realm 、firewalld 等多种转发工具,发现速度还是超不过 3m/s,这是怎么回事呢?端口转发会有这么大的损耗吗?大牛们有遇到过吗?谢谢!

6354 次点击
所在节点    云计算
23 条回复
ericbize
2020-10-04 23:33:48 +08:00
bbr 试一下
nowjust
2020-10-04 23:47:37 +08:00
nat vps 和欧洲服务器都装了
heiher
2020-10-05 01:26:34 +08:00
试试用户态转发,不是直接包转发。
laminux29
2020-10-05 09:25:46 +08:00
1.监视一下整个 vps 的对于每条链接的传输速度,来排查一下是不是端口转发造成损耗。

举个例子,vps 到你家里的链路传输速度为 5MB/s,但实际数据速度只有 1MB/s,那就相当于损耗了 4MB/s 的数据。

这种数据损耗的原因有很多,比如这种端口转发协议比不上直接 scp,或者端口转发协议被 gfw 或运营商识别了,等等。



2.分别测试:
欧洲服务器-vps

vps-你家

欧洲服务器-vps-你家

三种模式的延迟。我觉得问题应该卡在这里了。出现这种问题的可能原因,要不是端口转发程序的内部 bug 或业务逻辑导致产生延迟,要不是协议对这种端口转发模式支持不好造成了延迟。



3.无论是以上哪种问题,建议都别做端口转发了,做存储转发。
vszs
2020-10-05 11:13:37 +08:00
运营商 qos 的可能比较大
flynaj
2020-10-05 11:16:34 +08:00
试试 gost
nowjust
2020-10-05 11:27:01 +08:00
@flynaj 谢谢,试过了,效果更差
nowjust
2020-10-05 11:27:44 +08:00
@vszs 两段的单独连接都没有问题,应该与 QOS 关系不大
nowjust
2020-10-05 11:31:05 +08:00
@laminux29 感谢分析,我来试一试延迟情况。另外,我在 nat 上用 iftop 做了个监测,从监测情况看,欧服到 nat 段的速率总要比 nat 到本地的速率慢个 1-200k,感觉像是欧服到 vps 段的速度限制了整个转发速率。
nowjust
2020-10-05 11:31:37 +08:00
@heiher 有什么现成的工具可以使用吗?
heiher
2020-10-05 11:58:23 +08:00
@nowjust nginx stream proxy 应该也可以
nowjust
2020-10-05 12:17:26 +08:00
@heiher 试了 nginx,稍微好一点点,和 haproxy 差不多
nowjust
2020-10-05 12:19:28 +08:00
@laminux29 不知存储转发有没有现成的工具呢,还是需要自己造轮子?谢谢!
flynaj
2020-10-05 13:40:54 +08:00
@nowjust #7 用 kcp 协议 直接来!
mepwang
2020-10-05 17:28:30 +08:00
好像通用 Linux 转发效率本身就不高,绕过操作系统协议栈的用户态转发速度快很多,比如基于 DPDK 的包转发工具
vduang
2020-10-05 19:29:39 +08:00
端口转发没这么大损耗。做转发的时候实际占用带宽是你下载速度的 2 倍,所以你的 vps 下行速度已经达到 6m 了,可能已经接近带宽限制了。另外 dns 解析到的 ip 也可能影响下载速度,换成直接用 ip 去 wget 试试
kangsheng9527
2020-10-05 20:19:31 +08:00
只要能重现问题就能找出问题甚至解决问题。。。
luguiyao
2020-10-06 05:44:25 +08:00
也可以尝试 nginx 反代
alect
2020-10-06 08:42:27 +08:00
这种情况下,虽然你只有 3M,但中转服务器的速率是 3+3,上下行一起跑的
nowjust
2020-10-06 16:22:26 +08:00
@vduang @alect nat 机是上下行分别限速的,所以还没有达到带宽限制。这两天经过反复折腾,发现应该是 scp 协议的锅,至于是被 QoS 还是协议缺陷就不知道了,后来更换了其它协议,速度就能上升到 7-8M 了,下次有人遇到类似情况也可以考虑更换协议试试。感谢各位大牛

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/712543

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX