net.core.rmem_default如何设置

联启 网络工具 13

本文目录导读:

net.core.rmem_default如何设置-第1张图片-电脑手机工具软件下载 - 免费实用工具合集 | 联启科技

  1. 如何设置(三种方法)
  2. 关键说明与注意事项
  3. 示例:完整的网络缓冲区调优(含 TCP)

net.core.rmem_default 是 Linux 内核参数,用于设置接收套接字(socket)默认缓冲区大小(以字节为单位),它影响所有类型的网络协议(TCP、UDP、UNIX 域套接字等)的默认接收缓冲区。

如何设置(三种方法)

临时生效(重启后失效,用于测试)

# 设置为 262144 字节(256KB)
sudo sysctl -w net.core.rmem_default=262144
# 立即查看是否生效
sysctl net.core.rmem_default

永久写入配置文件(推荐)

编辑 /etc/sysctl.conf 或在 /etc/sysctl.d/ 下创建自定义文件(如 99-network.conf):

# 在文件末尾添加
net.core.rmem_default = 262144

然后加载配置:

sudo sysctl -p
# 或指定文件
sudo sysctl -p /etc/sysctl.d/99-network.conf

通过内核接口直接写入

echo 262144 | sudo tee /proc/sys/net/core/rmem_default

但此方法与 sysctl -w 效果相同,也是临时生效。

关键说明与注意事项

  • 单位字节,常用值参考(单位:字节):

    • 212992 (约 208KB) – 大多数发行版默认值
    • 262144 (256KB) – 通用推荐
    • 524288 (512KB) – 高吞吐场景
    • 1048576 (1MB) – 内存充裕时的极端场景
  • 与其他参数的关系

    • net.core.rmem_max(硬上限):应用程序通过 SO_RCVBUF 能设置的最大值。rmem_default 不能超过 rmem_max
    • net.ipv4.tcp_rmem:TCP 协议的三个值(min/default/max),会覆盖 net.core.rmem_default,如果主要关心 TCP,应调整 tcp_rmem 的第二个值。
    • net.core.wmem_default(对应发送缓冲区)
  • 生效范围

    • 新创建的套接字生效,已存在的连接不受影响。
    • 应用程序可以通过 setsockopt() 设置 SO_RCVBUF 覆盖此默认值。
  • 检查当前值

    sysctl net.core.rmem_default
    cat /proc/sys/net/core/rmem_default
  • 常见应用场景

    • UDP 高吞吐:UDP 使用此参数作为默认接收缓冲区,增大它可以减少丢包。
    • TCP 性能调优:虽然 TCP 有独立参数,但某些环境下 rmem_default 作为下限参考。

示例:完整的网络缓冲区调优(含 TCP)

# /etc/sysctl.d/99-network.conf
# 接收缓冲区
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
# 发送缓冲区
net.core.wmem_default = 262144
net.core.wmem_max = 4194304
# TCP 特定(自动调整)
net.ipv4.tcp_rmem = 4096 131072 6291456
net.ipv4.tcp_wmem = 4096 65536 4194304
# 开启 TCP 窗口缩放(大窗口支持)
net.ipv4.tcp_window_scaling = 1
  • 临时测试sudo sysctl -w net.core.rmem_default=262144
  • 永久设置:编辑 /etc/sysctl.d/*.confsudo sysctl -p
  • 必须同时考虑 rmem_max(硬上限)和 tcp_rmem(若优化 TCP)

根据你的网络类型(TCP/UDP/其他)选择合适的参数进行联动调整,如果只设置 rmem_default 而未设置 rmem_max,应用程序可能无法请求更大的缓冲区。

标签: Linux内核参数

抱歉,评论功能暂时关闭!