如何让你的VPS速度更快:基于BDP原理的单线程极限测速与TCP调优实践:修订间差异
更多语言
更多操作
无编辑摘要 |
无编辑摘要 |
||
| (未显示同一用户的2个中间版本) | |||
| 第32行: | 第32行: | ||
==== 1. 编辑系统文件 ==== | ==== 1. 编辑系统文件 ==== | ||
SSH 登录到服务器,编辑系统 | SSH 登录到服务器,编辑系统文件:<syntaxhighlight lang="abap"> | ||
vi /etc/sysctl.conf | vi /etc/sysctl.conf | ||
</syntaxhighlight>进入 vi 编辑页面后,按下键盘 '''<code>i</code>''' 键进入编辑模式。 | </syntaxhighlight>进入 vi 编辑页面后,按下键盘 '''<code>i</code>''' 键进入编辑模式。 | ||
'''提示:''' 如果在使用 <code>vi</code> 粘贴内容时遇到报错、卡顿或格式错乱等问题,可以先按 <code>ESC</code> 键输入 <code>:q!</code> 强制退出,然后执行命令 <code>echo "set clipboard=unnamed" >> ~/.vimrc</code> 来开启剪贴板支持并优化配置,之后再重新执行 <code>vi</code> 命令进入编辑即可。 | |||
==== 2. 选择并写入 TCP 缓冲区参数 ==== | ==== 2. 选择并写入 TCP 缓冲区参数 ==== | ||
根据你的实际需求,选择以下'''两种方案之一''',将其复制并粘贴到配置文件的最末尾。 | 根据你的实际需求,选择以下'''两种方案之一''',将其复制并粘贴到配置文件的最末尾。 | ||
=== 方案 A:均衡版参数(推荐) === | ===== 方案 A:均衡版参数(推荐) ===== | ||
* '''定位:''' 将单线程理论峰值控制在 '''1Gbps (约 125MB/s)''' 左右。 | * '''定位:''' 将单线程理论峰值控制在 '''1Gbps (约 125MB/s)''' 左右。 | ||
* '''优点:''' 足够满足日常 4K/8K 观影和快速下载需求。避免速度过高导致流量消耗过快,同时'''降低因单线程长时间超大流量传输而引起中国防火墙(GFW)注意和封锁的风险'''。 | * '''优点:''' 足够满足日常 4K/8K 观影和快速下载需求。避免速度过高导致流量消耗过快,同时'''降低因单线程长时间超大流量传输而引起中国防火墙(GFW)注意和封锁的风险'''。 | ||
| 第52行: | 第53行: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== 方案 B:激进版参数 === | ===== 方案 B:激进版参数 ===== | ||
* '''定位:''' 理论极限峰值可跑满 '''2.5Gbps 甚至更高'''。 | * '''定位:''' 理论极限峰值可跑满 '''2.5Gbps 甚至更高'''。 | ||
* '''优点:''' 极限发挥搬瓦工 DC6 等顶级机房的全部物理带宽,适合测速跑分或极端大文件内网传输。 | * '''优点:''' 极限发挥搬瓦工 DC6 等顶级机房的全部物理带宽,适合测速跑分或极端大文件内网传输。 | ||
| 第68行: | 第68行: | ||
==== 3. 保存并使配置生效 ==== | ==== 3. 保存并使配置生效 ==== | ||
粘贴完成后,按下键盘 '''<code>ESC</code>''' 键退出编辑模式,接着输入 '''<code>:wq</code>'''(写入并退出)并回车。 最后,执行以下命令让刚才的修改立即生效:<syntaxhighlight lang="abap"> | 粘贴完成后,按下键盘 '''<code>ESC</code>''' 键退出编辑模式,接着输入 '''<code>:wq</code>'''(写入并退出)并回车。 最后,执行以下命令让刚才的修改立即生效:<syntaxhighlight lang="abap"> | ||
sysctl -p | |||
</syntaxhighlight> | </syntaxhighlight> | ||
| 第74行: | 第74行: | ||
为了最直观地看到效果,避免其他不稳定因素干扰测试结果,我们使用网络测试工具 '''iperf3 ,'''让我们可以测试服务器到本地的单线程极限速度。 | 为了最直观地看到效果,避免其他不稳定因素干扰测试结果,我们使用网络测试工具 '''iperf3 ,'''让我们可以测试服务器到本地的单线程极限速度。 | ||
==== 1.测速环境与工具准备 ==== | |||
* 请使用debian12系统,其他版本或者系统的可能不适用。 | * 请使用debian12系统,其他版本或者系统的可能不适用。 | ||
* 在搬瓦工 VPS 上安装服务端(安装弹出的提示选NO):<code>apt install -y iperf3</code> | * 在搬瓦工 VPS 上安装服务端(安装弹出的提示选NO):<code>apt install -y iperf3</code> | ||
| 第84行: | 第83行: | ||
'''测试命令:'''<code>iperf3 -c [你的VPS_IP] -P 1 -R</code> | '''测试命令:'''<code>iperf3 -c [你的VPS_IP] -P 1 -R</code> | ||
==== | ==== 2.默认状态测速(未调优) ==== | ||
【DC6 机房 - 调优前测速截图】 | 【DC6 机房 - 调优前测速截图】 | ||
| 第97行: | 第96行: | ||
[[File:Iperfdc901.png|800x800px]] | [[File:Iperfdc901.png|800x800px]] | ||
==== | ==== 3.增加调优参数后测速 ==== | ||
【DC6 机房 - 调优后测速截图】 | 【DC6 机房 - 调优后测速截图】 | ||
| 第110行: | 第109行: | ||
[[File:Iperfdc902.png|800x800px]] | [[File:Iperfdc902.png|800x800px]] | ||
==== | ==== 4.数据总结与对比分析 ==== | ||
由于我用于测试的服务器位于中国的国际网络出口端,所以与 DC6、DC9 和 DC99 的连通性本来就较好,峰值速度提升有限。但是通过数据和曲线可以看到,调优后'''速度拉升更快,稳定区间更高、更平滑'''。 后续我将补充上更多地区的实际测试数据。 | 由于我用于测试的服务器位于中国的国际网络出口端,所以与 DC6、DC9 和 DC99 的连通性本来就较好,峰值速度提升有限。但是通过数据和曲线可以看到,调优后'''速度拉升更快,稳定区间更高、更平滑'''。 后续我将补充上更多地区的实际测试数据。 | ||
=== 四、最后总结 === | === 四、最后总结 === | ||
'''1.带宽 ≠ 实际速度:''' 使用大带宽的搬瓦工中国线路优化服务器,并不意味着任何情况下网络都能起飞。面对中美之间的高延迟网络 (LFN), | '''1.带宽 ≠ 实际速度:''' 使用大带宽的搬瓦工中国线路优化服务器,并不意味着任何情况下网络都能起飞。面对中美之间的高延迟网络 (LFN),底层协议的 TCP 窗口调优至关重要。 | ||
'''2.按需选择调优策略:''' 不建议盲目追求极限速度。对于绝大多数场景,“ | '''2.按需选择调优策略:''' 不建议盲目追求极限速度。对于绝大多数场景,“均衡版参数”是最比较合适的选择,既能保证丝滑体验,又能有效规避流量异常导致的封禁风险。 | ||
'''3.单线程才是真是体验:''' 测速不能参考 Speedtest 多线程并发跑出来的数据。用 <code>iperf3 -P 1</code> 测出来的单线程速度,才是你建站、传文件、拉取 Docker 镜像时真正能体验到的速度。 | '''3.单线程才是真是体验:''' 测速不能参考 Speedtest 多线程并发跑出来的数据。用 <code>iperf3 -P 1</code> 测出来的单线程速度,才是你建站、传文件、拉取 Docker 镜像时真正能体验到的速度。 | ||
2026年3月10日 (二) 04:23的最新版本
搬瓦工(BandwagonHost)的中国优化线路,已经是目前普通中国消费者能以较低价位获取到的、速度最顶级的中美网络线路,其本身的线路质量和物理速度毋庸置疑。
然而,很多朋友购买了搬瓦工的中国线路优化套餐后,实际使用中可能会遇到了一个奇怪的问题:多线程测速(如 Speedtest)能跑满带宽,但用浏览器单线程下载文件时,速度却到不到预期。
为了验证并解决这个问题,我使用了 DC6、DC9、DC99 三个机房的服务器进行了测试与底层调优。
一、核心原因:什么是 BDP?为什么跑不满服务器带宽
要解决问题,首先要找到原因。很多人忽略了跨国网络传输中的一个核心物理限制。
1. 理论基础
对于BDP,可以参考在维基百科中的定义:
Bandwidth-delay product is the product of a data link's capacity (in bits per second) and its round-trip delay time (in seconds).
(带宽延迟乘积 = 数据链路的容量 × 往返延迟时间)
2. 场景代入
搬瓦工的美国机房(如 DC6/DC9)到中国的物理距离很远,平均网络延迟(RTT)大约在 150ms (0.15秒) 以上。同时,它的网络端口极大(2.5Gbps+)。这种“高延迟 + 大端口”的网络,在计算机网络中被称为 LFN(Long Fat Network,长胖网络)。
TCP 协议在传输数据时,需要等待对方的“确认接收(ACK)”才会发送下一批数据。这就好比你在一个长长的管道里运水,如果你的“水桶(TCP 窗口/缓冲区)”太小,水管(带宽)再粗也没用,因为你每次只能运那么一小桶,还要等 0.15 秒以上才能送下一桶。
3. 数据测算
这里做个假设: 我们要在这条 150ms 延迟的路线上,跑满 1Gbps 的单线程速度。
通过计算可知: BDP = 1,000,000,000 bps × 0.15s = 150,000,000 bits = 18.75 MB
也就是说,Linux 系统的 TCP 接收/发送缓冲区至少需要 18.75 MB,才能跑满 1Gbps 的网络端口! 而搬瓦工默认的 Linux 系统(如 Debian 12 )的 TCP 缓冲区是没有设置的,也就是说实际 TCP 缓冲区仅有默认的5M以下。这就是单线程速度跑不快的最根本原因!
二、调优实战:修改内核参数,提高速度上限
既然知道了原因,解决办法就很简单了:开启拥塞控制算法(BBR),并强行放大系统的 TCP 缓冲区限制。搬瓦工的服务器目前都默认开启了 BBR ,所以我们只需要直接修改缓冲区大小。
1. 编辑系统文件
SSH 登录到服务器,编辑系统文件:
vi /etc/sysctl.conf
进入 vi 编辑页面后,按下键盘 i 键进入编辑模式。
提示: 如果在使用 vi 粘贴内容时遇到报错、卡顿或格式错乱等问题,可以先按 ESC 键输入 :q! 强制退出,然后执行命令 echo "set clipboard=unnamed" >> ~/.vimrc 来开启剪贴板支持并优化配置,之后再重新执行 vi 命令进入编辑即可。
2. 选择并写入 TCP 缓冲区参数
根据你的实际需求,选择以下两种方案之一,将其复制并粘贴到配置文件的最末尾。
方案 A:均衡版参数(推荐)
- 定位: 将单线程理论峰值控制在 1Gbps (约 125MB/s) 左右。
- 优点: 足够满足日常 4K/8K 观影和快速下载需求。避免速度过高导致流量消耗过快,同时降低因单线程长时间超大流量传输而引起中国防火墙(GFW)注意和封锁的风险。
# --- TCP 缓冲区调优 (均衡版 16MB) ---
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_window_scaling = 1
方案 B:激进版参数
- 定位: 理论极限峰值可跑满 2.5Gbps 甚至更高。
- 优点: 极限发挥搬瓦工 DC6 等顶级机房的全部物理带宽,适合测速跑分或极端大文件内网传输。
# 放大 TCP 缓冲区 (最大 32MB,解决高延迟大带宽 BDP 瓶颈)
net.ipv4.tcp_rmem = 4096 87380 33554432
net.ipv4.tcp_wmem = 4096 65536 33554432
net.core.rmem_max = 33554432
net.core.wmem_max = 33554432
net.ipv4.tcp_window_scaling = 1
3. 保存并使配置生效
粘贴完成后,按下键盘 ESC 键退出编辑模式,接着输入 :wq(写入并退出)并回车。 最后,执行以下命令让刚才的修改立即生效:
sysctl -p
三、iperf3 测速对比结果:调优前 vs 调优后
为了最直观地看到效果,避免其他不稳定因素干扰测试结果,我们使用网络测试工具 iperf3 ,让我们可以测试服务器到本地的单线程极限速度。
1.测速环境与工具准备
- 请使用debian12系统,其他版本或者系统的可能不适用。
- 在搬瓦工 VPS 上安装服务端(安装弹出的提示选NO):
apt install -y iperf3 - 在本地电脑(或另一台国内服务器)下载并运行运行客户端:官网连接
我们分别对 DC6 、DC9 和 DC99 机房进行 单线程极限测试(加 -R 参数测试 VPS 到本地的下载速度)。
测试命令:iperf3 -c [你的VPS_IP] -P 1 -R
2.默认状态测速(未调优)
【DC6 机房 - 调优前测速截图】
【DC99 机房 - 调优前测速截图】
【DC9 机房 - 调优前测速截图】
3.增加调优参数后测速
【DC6 机房 - 调优后测速截图】
【DC99 机房 - 调优后测速截图】
【DC99机房 - 调优前测速截图】
4.数据总结与对比分析
由于我用于测试的服务器位于中国的国际网络出口端,所以与 DC6、DC9 和 DC99 的连通性本来就较好,峰值速度提升有限。但是通过数据和曲线可以看到,调优后速度拉升更快,稳定区间更高、更平滑。 后续我将补充上更多地区的实际测试数据。
四、最后总结
1.带宽 ≠ 实际速度: 使用大带宽的搬瓦工中国线路优化服务器,并不意味着任何情况下网络都能起飞。面对中美之间的高延迟网络 (LFN),底层协议的 TCP 窗口调优至关重要。
2.按需选择调优策略: 不建议盲目追求极限速度。对于绝大多数场景,“均衡版参数”是最比较合适的选择,既能保证丝滑体验,又能有效规避流量异常导致的封禁风险。
3.单线程才是真是体验: 测速不能参考 Speedtest 多线程并发跑出来的数据。用 iperf3 -P 1 测出来的单线程速度,才是你建站、传文件、拉取 Docker 镜像时真正能体验到的速度。
4.进阶调优建议: 如果你对调优有更多想法,可以参照 NodeSeek 大佬的调优专用网站,选择更适合自己的调优参数。https://omnitt.com/