我之前问过类似的问题,但我相信我不清楚细节。
由于地理距离,我的服务器基本上存在一些与服务器和客户端之间的高延迟有关的问题。并进行了研究,结果证明我可以通过增加 TCP 窗口大小来解决这个问题。
问题是我真的不知道该怎么做,按照我在网上找到的说明根本没有帮助。
所以我希望有人可以分享一些文档/命令/说明或任何可以进一步改善这个问题的东西。
这是一些信息:
- 操作系统:Ubuntu 20.04 (LTS) x64
- 服务器:Apache/2.4.41
- 应用程序类型:Python - Flask
- 托管公司:数字海洋
编辑:在几个回复告诉我调整窗口大小不会解决问题之后,我想我还不够清楚。
在告诉我更改窗口大小不起作用之前,请参阅此答案。 https://networkengineering.stackexchange.com/a/2297/71565
如果您认为我误解了上面链接中的答案,请告诉我我特别出错的地方,不要只分享“它不起作用”等神秘回复。
我不是 100% 相信您的问题确实与窗口大小有关。不过,您可以在下面找到相关信息。
由于 TCP 标头的限制,基本窗口大小不能超过 65535 字节。来自RFC 1323:
这并不意味着 TCP 窗口不能更大,因为现代操作系统支持(并默认宣传)TCP 窗口缩放,其中窗口大小通过缩放高达 14 倍动态增加。但是,可以在达到最大缩放比例之前配置上限。
作为参考,这些是 Ubuntu 20.04 上的相关参数(及其默认值):
实际的最大窗口大小是和 的第三个值之间的较小者。因此,在 Ubuntu 20.04 上,默认情况下,您的实际最大接收和发送窗口为 212992 字节。要将限制增加到 4 MB,您可以执行以下操作:
[r|w]mem_max
tcp_[r|w]mem
如果有效,您可以通过编辑来保留设置
/etc/sysctl.conf