Lin*_*eak 8 performance memory debian transmission
我刚刚transmission{-daemon,-cli}
在我的 Debian 10 Buster 上编译了它,并在安装时遇到了一些小问题和大问题。
其中一个次要问题是明显未能根据日志设置 UDP 接收缓冲区/发送缓冲区:
[2019-05-23 12:45:40.950] UDP Failed to set receive buffer: requested 4194304, got 425984 (tr-udp.c:84)
[2019-05-23 12:45:40.950] UDP Please add the line "net.core.rmem_max = 4194304" to /etc/sysctl.conf (tr-udp.c:89)
[2019-05-23 12:45:40.950] UDP Failed to set send buffer: requested 1048576, got 425984 (tr-udp.c:95)
[2019-05-23 12:45:40.950] UDP Please add the line "net.core.wmem_max = 1048576" to /etc/sysctl.conf (tr-udp.c:100)
Run Code Online (Sandbox Code Playgroud)
我希望客户端向我展示它的最大性能,所以我很好奇如何在我的系统上调整这两个东西,它提出了什么?4 on 1 MiB 对我来说似乎并不多,但由于我不是网络专家,请详细说明,如果我可以将其调整为更高的数字。
ISP链接速度:
连接配置:带有转发端口的公共静态 IPv4。
为了完整起见,让我也提到其他组件,我不知道这些信息在这里是否重要,所以......
Lin*_*eak 12
遵循这篇旧文章有所帮助。让我先提一下声称的解决方案:
以 root 用户身份打开这个文本文件,注意它是那些重要的系统文件之一:
/etc/sysctl.conf
Run Code Online (Sandbox Code Playgroud)由于我有足够的内存,我添加了这两行;例如,如果您在嵌入式系统上,您可能需要重新考虑应用这些行(我们为接收缓冲区设置 16 MiB,为发送缓冲区设置 4 MiB),我还不能说出实际的运行内存要求:
net.core.rmem_max = 16777216
net.core.wmem_max = 4194304
Run Code Online (Sandbox Code Playgroud)如果您决定在上面添加这些行,您可以重新阅读配置:
sysctl -p
Run Code Online (Sandbox Code Playgroud)
无需重新启动即可生效。
现在,让我在此引用该网页:
此消息试图告诉我们,出于某种原因,传输希望为其 UDP 套接字拥有 4 兆字节的接收缓冲区和 1 兆字节的发送缓冲区。事实证明,对 uTP 的支持,即 uTorrent 传输协议,是使用单个套接字实现的。
通过调整这两个变量,使用 uTP 可以更轻松地实现更高的吞吐量。
由于我们使用单个 UDP 套接字来实现多个 uTP 套接字,并且由于我们并不总是及时为传入的 UDP 数据包提供服务,因此使用大的接收缓冲区很重要。发送缓冲区可能不太重要,但我们还是增加了它。
小智 12
回答的解决方案工作正常,但在systemd中,您必须将这些行写入:
/etc/sysctl.d/<anyname>.conf
Run Code Online (Sandbox Code Playgroud)
然后,执行(以 root 身份):
systemctl restart systemd-sysctl
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13738 次 |
最近记录: |