#1
ryzenYES
· 2026-09-05 09:35:23
stalltrix
我的意思是,除了提高下载的吞吐外,其他方面并没有什么太大作用,加上日常上网速率也不会超过10M。如果都能跑满自己的家的宽带,那么没什么必要调。
说的玄学高端,实际上大多数干的只是“内核TCP缓冲区”调优。更详细的推荐去看下cloudflare的这篇文章:https://blog.cloudflare.com/optimizing-tcp-for-high-throughput-and-low-latency/
简单说下:现行“缓冲参数调优”一般只影响单条 TCP 的吞吐量(多线程照样挤满宽带),并不会减少延迟,此外大多数丢包是线路问题,这个你无法控制,调整这个并不能减少延迟与影响丢包体感。只影响线路利用的吞吐率
简单解释下原理:
这个就是一个收发包裹的问题,TCP有序性要求交付包裹必须连续,因此缓冲区保留能容纳的最近的连续包裹以流重组,超远太远的就直接丢了(超接收窗口),还有包收发不够满,通知对方发下包需要一个ack来回rtt延迟。这两种肯定会影响ack序列号移动速度,影响吞吐
在内存无限以及宽带无限的条件下,理论上就是越大越好。但是实际到达宽带吞吐延迟平衡极限的时候,调大了的内存就是完全浪费的。你发多了超过宽带的,肯定就给你丢了。无效内存积压这么多还会影响队列调度
在其他地方看到的大量“TCP调优脚本”,本质上就是调大“接受/发生缓冲区”这一个行为而已。说脚本“智能调整”开玩笑。就是在内存能承受的极限内,尽可能调大(再顺便帮你开bbr),加上大多数G口链路一般吃不满,就不帮你考虑宽带了。(其实并没有考虑浪费内存与其他应用。有些用了卡死了,变差)
看不懂没关系,这么说吧:跨洋延迟与轻微丢包,调大一点效果显著上升。同城延迟与几乎0丢包,这种就没明显提升。
TCP多并发压测,大概就能测出链路吞吐极限。如果丢包超过10%了,调整这个体感也没多大差别了。一般是线路鸡才调的
实际体感影响最大的,反而是qdisc与拥塞控制

