欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > 国产Linux OS:网络性能调优关键内核参数

国产Linux OS:网络性能调优关键内核参数

2025/2/22 0:01:19 来源:https://blog.csdn.net/aspirestro/article/details/145666667  浏览:    关键词:国产Linux OS:网络性能调优关键内核参数

国产Linux OS:网络性能调优关键内核参数


参数列表

这些参数是Linux系统中用于网络性能调优的关键内核参数,它们控制了网络接口和TCP协议栈的行为。合理调整这些参数可以根据具体的应用场景和网络条件优化系统的网络性能。

sysctl net.core.rmem_max
sysctl net.core.wmem_max
sysctl net.core.rmem_default
sysctl net.core.wmem_default
sysctl net.ipv4.tcp_mem
sysctl net.ipv4.tcp_rmem
sysctl net.ipv4.tcp_wmem

下面是对每个参数的具体解释及其作用:

1. net.core.rmem_maxnet.core.wmem_max

  • net.core.rmem_max: 这个参数定义了接收缓冲区的最大值(以字节为单位)。接收缓冲区用于存储从网络接收到的数据,直到应用程序处理这些数据。
  • net.core.wmem_max: 这个参数定义了发送缓冲区的最大值(以字节为单位)。发送缓冲区用于存储待发送的数据,直到这些数据被成功传输到目标主机。

作用: 调整这两个参数可以帮助优化高带宽或高延迟网络环境下的性能,通过允许更大的缓冲区来减少数据包丢失和提高吞吐量。

2. net.core.rmem_defaultnet.core.wmem_default

  • net.core.rmem_default: 定义了接收缓冲区的默认大小(以字节为单位),这是在网络连接建立时分配给每个连接的初始缓冲区大小。
  • net.core.wmem_default: 定义了发送缓冲区的默认大小(以字节为单位),同样,这是在每个新连接建立时分配的初始发送缓冲区大小。

作用: 这些默认设置影响所有新创建的网络连接的性能。适当调整这些值可以改善网络应用的整体性能,特别是在高负载情况下。

3. net.ipv4.tcp_mem

这个参数是一个由三个数值组成的数组,分别表示:

  1. 当内存使用达到第一个数值时开始减少TCP内存使用;
  2. 当内存使用超过第二个数值时增加TCP内存使用;
  3. 强制回收内存的阈值。

作用: 控制TCP协议栈使用的内存量,帮助系统在内存压力下保持稳定性和性能。

4. net.ipv4.tcp_rmemnet.ipv4.tcp_wmem

  • net.ipv4.tcp_rmem: 一个由三个数值组成的数组,分别表示最小、默认和最大TCP接收窗口大小(以字节为单位)。
  • net.ipv4.tcp_wmem: 类似地,也是一个由三个数值组成的数组,但针对的是发送窗口大小。

作用: TCP窗口大小直接影响数据传输的效率和速度。较大的窗口可以增加吞吐量,尤其是在高延迟网络中;然而,过大的窗口可能导致不必要的内存消耗和潜在的丢包风险。

总结

  • rmem_maxwmem_max:限制了网络接口的最大接收和发送缓冲区大小。
  • rmem_defaultwmem_default:设置了新连接的默认接收和发送缓冲区大小。
  • tcp_mem:管理TCP协议栈的内存使用,确保在不同内存压力条件下系统的稳定性。
  • tcp_rmemtcp_wmem:配置TCP连接的接收和发送窗口大小,直接影响数据传输效率。

国产Linux OS默认值

1. 麒麟V10

net.core.wmem_max = 212992
net.core.rmem_max = 212992
net.core.wmem_default = 212992
net.core.rmem_default = 212992
net.ipv4.tcp_mem = 31737 42318 63474
net.ipv4.tcp_rmem = 4096 131072 6291456
net.ipv4.tcp_wmem = 4096 16384 4194304

2. 龙蜥AnolisOS 8.9

net.core.rmem_max = 212992
net.core.wmem_max = 212992
net.core.rmem_default = 212992
net.core.wmem_default = 212992
net.ipv4.tcp_mem = 42432        56579   84864
net.ipv4.tcp_rmem = 4096        131072  6291456
net.ipv4.tcp_wmem = 4096        16384   4194304

3. openEuler22.03

net.core.rmem_max = 212992
net.core.wmem_max = 212992
net.core.rmem_default = 212992
net.core.wmem_default = 212992
net.ipv4.tcp_mem = 38916        51888   77832
net.ipv4.tcp_rmem = 4096        131072  6291456
net.ipv4.tcp_wmem = 4096        16384   4194304

国外主流Linux默认值

1. Ubuntu22.04

net.core.rmem_max = 212992
net.core.wmem_max = 212992
net.core.rmem_default = 212992
net.core.wmem_default = 212992
net.ipv4.tcp_mem = 92943        123924  185886
net.ipv4.tcp_rmem = 4096        131072  6291456
net.ipv4.tcp_wmem = 4096        16384   4194304

2. RHEL9.2/Rocky9.2

net.core.rmem_max = 212992
net.core.wmem_max = 212992
net.core.rmem_default = 212992
net.core.wmem_default = 212992
net.ipv4.tcp_mem = 41679        55575   83358
net.ipv4.tcp_rmem = 4096        131072  6291456
net.ipv4.tcp_wmem = 4096        16384   4194304

3. RHEL8.4/CentOS8.4

net.core.rmem_max = 212992
net.core.wmem_max = 212992
net.core.rmem_default = 212992
net.core.wmem_default = 212992
net.ipv4.tcp_mem = 42639        56855   85278
net.ipv4.tcp_rmem = 4096        87380   6291456
net.ipv4.tcp_wmem = 4096        16384   4194304

4. RHEL7.5/CentOS7.5

net.core.rmem_max = 212992
net.core.wmem_max = 212992
net.core.rmem_default = 212992
net.core.wmem_default = 212992
net.ipv4.tcp_mem = 88095	117463	176190
net.ipv4.tcp_rmem = 4096	87380	6291456
net.ipv4.tcp_wmem = 4096	16384	4194304

优化调整建议

调整内核参数以优化网络性能通常需要根据具体的应用场景和硬件条件进行。

以下是一些常见的建议,但请注意,这些值可能需要根据实际环境进一步调优:

  1. 高带宽需求(如大数据传输、视频流等)

    • 提升读写缓冲区大小可以增加一次性传输的数据量。
    • net.core.rmem_maxnet.core.wmem_max 可以设置为更大值,比如 8MB 或更高。
    • net.ipv4.tcp_rmemnet.ipv4.tcp_wmem 的最大值也可以相应增大到 8MB 或更多。
  2. 低延迟需求(如在线游戏、实时数据处理等)

    • 减少初始和最小的缓冲区大小有助于减少延迟。
    • net.ipv4.tcp_rmemnet.ipv4.tcp_wmem 的第一个值(最小值)可以保持默认或适当减小。
    • 第二个值(初始大小)可以根据你的应用需求进行调整,通常不需要太大。
    • 第三个值(最大值)可以根据你的网络带宽来设定。
  3. 高并发连接数(如Web服务器、API服务等)

    • 增加 net.core.somaxconnnet.ipv4.tcp_max_syn_backlog 的值,以便系统能处理更多的并发连接。
    • 对于内存管理参数如 net.ipv4.tcp_mem,确保其值足够大以避免在高负载下出现内存不足的问题。

一个参考配置示例(请根据实际情况调整):

net.core.wmem_max = 16777216
net.core.rmem_max = 8388608
net.core.wmem_default = 16777216
net.core.rmem_default = 8388608
net.ipv4.tcp_mem = 1162629 1550174 2325258
net.ipv4.tcp_rmem = 4096 87380 6291456
net.ipv4.tcp_wmem = 4096 16384 4194304

如何让参数生效

调整这些内核参数可以通过sysctl命令来实现,并且为了确保这些设置在系统重启后仍然有效,需要将它们添加到系统的配置文件中。以下是具体步骤:

1. 使用 sysctl 命令临时调整

您可以使用 sysctl 命令即时修改内核参数。例如:

sudo sysctl -w net.core.rmem_max=4194304
sudo sysctl -w net.core.wmem_max=4194304
sudo sysctl -w net.core.rmem_default=262144
sudo sysctl -w net.core.wmem_default=262144
sudo sysctl -w net.ipv4.tcp_mem="31737 42318 63474"
sudo sysctl -w net.ipv4.tcp_rmem="4096 131072 4194304"
sudo sysctl -w net.ipv4.tcp_wmem="4096 16384 4194304"

2. 确保开机自动调整

为了确保这些设置在系统重启后依然生效,您需要将它们添加到 /etc/sysctl.conf 文件中.

  1. 打开 /etc/sysctl.conf 文件:

    sudo nano /etc/sysctl.conf
    
  2. 在文件末尾添加您的自定义设置:

    # 自定义网络调优参数
    net.core.rmem_max = 4194304
    net.core.wmem_max = 4194304
    net.core.rmem_default = 262144
    net.core.wmem_default = 262144
    net.ipv4.tcp_mem = 31737 42318 63474
    net.ipv4.tcp_rmem = 4096 131072 4194304
    net.ipv4.tcp_wmem = 4096 16384 4194304
    
  3. 保存并关闭文件。

  4. 应用新的设置(无需重启系统):

    sudo sysctl -p
    
  5. 验证设置是否已正确应用:

sysctl net.core.rmem_max
sysctl net.core.wmem_max
sysctl net.core.rmem_default
sysctl net.core.wmem_default
sysctl net.ipv4.tcp_mem
sysctl net.ipv4.tcp_rmem
sysctl net.ipv4.tcp_wmem

这将显示当前的内核参数值,以确认它们已被正确设置。


欢迎点赞收藏关注评论!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词