![路径 MTU 和 TCP 节点延迟](https://linux22.com/image/940834/%E8%B7%AF%E5%BE%84%20MTU%20%E5%92%8C%20TCP%20%E8%8A%82%E7%82%B9%E5%BB%B6%E8%BF%9F.png)
在连接上设置 tcp_nodelay 标志时,MTU 应该更高还是更低?我认为它应该更高,因为使用标志后数据包会变得更大?如果我错了,请纠正我。当前 mtu 是 1500
在具有 5k 个并发用户的实时服务器上运行是否安全,或者是否需要重新启动或重新启动应用程序?
ip link set dev eth0 mtu 5000
答案1
不要触碰 MTU 设置除非你在全部的控制该网络!MTU 必须相等全部连接到网络的设备,否则您很快就会面临奇怪的连接问题,主机突然看不到部分流量。
此外,这在互联网上毫无意义。MTU 可能被限制为 1500b 或更小。你不能预计您自己的网络之外的 MTU 大于 1500b!
此外,启用 tcp_nodelay 不会导致数据包变大。它会导致更多的小数据包,因为数据是在准备好时发送的,而不是在缓冲区填满到一定程度或经过一定时间后才发送。
所以简而言之:你的假设是错误的,结果不会像你所认为的那样。