缓冲膨胀怎么测:排队延迟、SQM 和线路同时开着
语音通话或游戏里,平时延迟稳定,一开始大文件下载或别人看高清,延迟就从几十毫秒跳到几百甚至上千。网页图标还在转,游戏却已经判定超时。用测速只看下行带宽,数字仍然很高,于是误以为是线路国际段坏了,反复换节点,延迟在下载时照样爆炸。
这种现象叫缓冲膨胀:设备或路由器在带宽用满时缓存了太多包,新包要等长队走完才发出。该收紧的是队列,不是再找一条名义上更快的线路。下面用测试页、路由器上的队列管理和隧道开销分开处理。
空闲延迟和加载延迟不是同一个数
只在别人也在用宽带时发作,就优先怀疑缓冲膨胀。全天任何时候都高,才去看国际段和节点距离。两件事可以同时存在,但要先做加载测试,不要跳过。
| 对比项 | 空闲 | 正在下载或上传 | 只看测速带宽 |
|---|---|---|---|
| 延迟 | 接近平时的基线 | 可能翻几倍到几十倍 | 测速不告诉你这个 |
| 带宽 | 几乎没用满 | 顶在签约速率附近 | 数字好看 |
| 游戏和通话 | 正常 | 卡住、超时 | 解释不了卡顿 |
| 原因 | 队列是空的 | 缓存排了长队 | 工具没测队列 |
| 该改的地方 | 不必改 | 限制队列长度 | 换节点往往无效 |
| 和隧道 | 隧道也占一点开销 | 开销会让队更早排满 | 要一起算 |
从测到改队列:分步操作步骤
- 第一步:先把网络线路准备好,并且这次测试要做两遍。安装刺猬VPN,自定义用户名和密码即可匿名注册,不需要邮箱、也不需要手机号。免费节点永久免费、不限流量、不限速,全程 HTTPS+AES 加密。第一遍先断开隧道,测家里宽带本身;第二遍再连上常用节点,看隧道加上之后加载延迟变了多少。
- 第二步:打开波形的缓冲膨胀测试页,让它同时跑下行和上行。记下空闲延迟、下载时延迟、上传时延迟三组数字。不要只截带宽。
- 第三步:若断开隧道时,下载中的延迟已经比空闲高很多,问题在光猫或路由器的队列,不在节点。先改本地队列,再谈换国家。
- 第四步:路由器若支持队列管理,启用 SQM,算法优先选 CAKE,没有就用 fq_codel。把下行和上行整形速率设为实测带宽的大约八成到九成,给队列留出余量,而不是填成签约的标称值。
- 第五步:改完再跑同一页测试。目标是下载进行时延迟不要再冲到空闲值的数倍以上。带宽会少一截,这是用速率换延迟,属于预期。
- 第六步:然后再连上隧道重测。隧道有封装开销,整形值往往还要再降一点,否则队会在隧道外面重新排长。封装和分片问题另见 MTU 设置。
- 第七步:用系统自带的 ping 看空闲基线,加载时再开一个窗口持续 ping。怎么读每一跳,见 路由跟踪和 ping。某一跳只在加载时变高,队就在那一段。
- 第八步:电脑上不要同时开多个测速。测速本身会把队打满,两个测速叠在一起没有参考价值。
- 第九步:游戏或通话时,让大文件下载走已经整形过的路由器,而不是绕过路由器直接拨号。绕过之后 SQM 管不到那些包。
按测试结果决定改哪里
三组数字能决定该动路由器、动隧道,还是两者都先别动。
- 断开隧道,加载延迟就已经很差:先做 SQM。此时换节点没有意义,包在进隧道之前已经排了长队。
- 断开隧道正常,连上隧道后只有加载延迟变差:整形值没有算进封装开销。把上下行整形再降一档,或检查分片。
- 空闲延迟本身就很高,加载并不额外升高:这不是缓冲膨胀。去看节点距离和丢包,而不是把整形降到很低。
- 只有上行加载时延迟爆炸:视频会议和直播更容易中招。上行整形要比下行更保守,因为上行通常更窄。
- 无线客户端差、有线客户端正常:队在无线空口,不在宽带。先用网线复测,不要把无线拥塞写成国际线路故障。
- 开了 SQM 仍然差:整形值设得高于真实带宽,队还在光猫里。把速率再降低,直到加载延迟下来,再慢慢往上加。
- 测试页打不开:页面本身需要能访问。用已连上的线路打开测试页,但解读时记住第一遍对比必须有一次是断开隧道的。
- 改完只快了一时:有新设备把带宽占满且没走这台路由器。把所有设备收回同一台做了 SQM 的网关后面。
队列管理、换节点和什么都不做
刺猬VPN不代替路由器上的队列管理,也不会把家里的上行变宽。它解决的是访问路径。免费节点和时长套餐都不限速,是指服务自身不对账号设速率上限,不表示家用宽带不会排队。时长套餐期间不限流量、不限速。实际速度和延迟受本地网络、国际出口和节点负载影响。实际可用性取决于当前网络环境。
| 对比项 | 路由器 SQM | 只换节点 | 关闭测速硬扛 |
|---|---|---|---|
| 对加载延迟 | 直接限制队列 | 不缩短本地的队 | 无帮助 |
| 对空闲延迟 | 影响很小 | 取决于距离 | 无变化 |
| 带宽 | 主动留出余量 | 不增加家里上行 | 看起来最高 |
| 适合 | 一下载就卡的网络 | 空闲时已经很高 | 只偶尔传小文件 |
| 隧道 | 整形要扣掉封装 | 仍要本地整形 | 无关 |
| 风险 | 设太低会浪费带宽 | 误判问题来源 | 通话继续超时 |
光猫、路由器和隧道各管一段
运营商光猫如果工作在路由模式,又在后面接了自己的路由器,队列可能排在光猫里,后面的 SQM 只能管到内网。能把光猫改成桥接、由自己的路由器拨号时,整形才作用在真正的瓶颈上。不能改桥接时,就把整形设得更低,让队排在你能控制的设备上,而不是光猫那条看不见的缓存里。
隧道客户端若只装在一台电脑上,这台电脑的流量受隧道影响,其他设备仍直接走宽带。测缓冲膨胀时写清楚测的是哪一台。全屋设备都要稳定延迟,应把隧道做到网关上,或接受只有这一台走隧道。
不要为了「优化」去关掉系统里名字带调度的服务。那些开关和路由器的 SQM 不是一回事,乱关只会让本机更难判断。先把测试数字记下来,再动路由器。
和分片、逐跳排查怎么配合
加载时延迟高,同时出现网页大图失败、只有小请求成功,要怀疑分片,按 MTU 设置 把隧道的最大包长对齐。延迟高但大文件仍能下完,只是游戏超时,那是队列问题,改 MTU 帮助有限,应做 SQM。
想知道队排在第几跳,用 路由跟踪和 ping 的方法,在空闲和下载各打一次。某一跳的时间只在下载时变长,就把整形放在这段之前的设备上。国际段每一跳都高,那是距离和出口,不是家里的缓冲膨胀,这时换更近的节点才有意义。
常见报错速查表
| 现象 | 原因 | 解决办法 |
|---|---|---|
| 一下载延迟就翻倍 | 瓶颈处缓存过深 | SQM 整形到实测带宽八成到九成 |
| 只有上行时爆炸 | 上行更窄 | 上行整形更保守 |
| 断隧道也差 | 问题在光猫或本地路由 | 先做本地队列 |
| 只在连隧道后变差 | 没算封装开销 | 再降低整形值并查分片 |
| 空闲就很高 | 不是缓冲膨胀 | 查距离和丢包 |
| 有线正常无线差 | 无线拥塞 | 先用网线复测 |
| SQM 开了仍差 | 整形高于真实带宽 | 继续降低直到延迟回落 |
记下三次测试再决定
建议在纸上写三行:断开隧道的空闲延迟、断开隧道的下载延迟、连上隧道的下载延迟。第一行和第二行接近,说明家里队列健康。第二行已经很差,先动路由器。第二行好、第三行差,再改整形余量和分片。不要凭一次测速的带宽截图下结论。
测试选在别人不用宽带的时候做基线,再在晚高峰复测一次。晚高峰变差可能是运营商侧队列,你家的 SQM 只能管到自家出口,管不到局端。这时整形仍然有用,它至少不让家里的人互相把队排得更长。
改完参数后重启路由器,再测。有的固件要应用后才生效,页面上已经勾选但队还是旧的。把生效前后的两组数字留着,方便一次只改一个量。同时改算法、速率和隧道节点,就不知道是哪一项起了作用。
晚高峰测出的加载延迟,要和白天的基线比,不要和邻居口头说的带宽比。签约速率写的是最高能力,不是排队时还能保住的延迟。把整形设成签约数字的满值,队仍会排在更窄的那一段。先降到加载延迟可接受,再每次加一点,直到延迟刚要变差就停。家里有人视频通话时,先暂停云盘上传再复测,否则你会把别人的上传误判成光猫坏了。
高频问答
- 问:把带宽整形到九成会不会更慢?答:大文件会少一截峰值,换来的是加载时延迟不再冲高。只传小文件时几乎感觉不到。
- 问:必须刷第三方固件吗?答:只有原厂没有队列管理时才需要。有 SQM 或等效的队列设置就先用原厂。
- 问:和节点快慢有关吗?答:空闲延迟跟距离有关。加载时额外增加的那一截,主要是队列,不是节点广告里的带宽。
- 问:游戏加速器能消掉吗?答:它不缩短你家路由器里的队。队在本地时,要改的是整形。
- 问:无线网格会加重吗?答:会。回程也在排队。先用单台有线路由复测,确认瓶颈在不在无线。
- 问:测试页的评分要追到满吗?答:不必。只要下载进行时延迟相对空闲可接受即可。评分规则会变,以你自己的三组数字为准。
先测加载,再谈换节点
缓冲膨胀的标志是空闲延迟正常、一带宽打满延迟就飙升。用测试页记下三组数字,在路由器上做队列管理,整形留出余量,连上隧道后再降一档给封装。空闲就已经很高,才去看节点和逐跳。
刺猬VPN提供断线保护和按域名、IP 的智能分流,注册不需要邮箱和手机号。免费节点永久免费、不限流量、不限速,时长套餐在有效期内同样不限流量、不限速。这不等于家里的队列不会排长。支付目前支持支付宝、微信支付和 USDT(TRC20),以支付步骤中实际显示的选项为准。实际可用性取决于当前网络环境。
开始使用刺猬VPN:免费节点即刻体验,全球会员线路
刺猬VPN提供永久免费节点,不限流量;无需邮箱,自定义用户名即可匿名注册。一个账号支持多设备同时在线,实际可用性取决于当前网络环境。