net.core.wmem_default怎样设置

联启 网络工具 13

本文目录导读:

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

  1. 临时修改(立即生效,重启后失效)
  2. 永久修改(重启后保持)
  3. 🔍 验证当前值
  4. ⚠️ 注意事项
  5. 📌 完整建议(结合 tcp_wmem)

net.core.wmem_default 是 Linux 内核参数,用于设置所有网络协议栈(如 TCP、UDP)使用的默认写缓冲区大小(单位:字节)。

设置方法有两种:


临时修改(立即生效,重启后失效)

使用 sysctl 命令:

# 将默认写缓冲区设置为 16MB(数值可根据需要调整)
sudo sysctl -w net.core.wmem_default=16777216

注意:

  • 设置的值必须是 2 的幂次方 的倍数(4096, 8192, 16384...),推荐设置为 16KB ~ 16MB 之间的值。
  • 常见生产环境推荐:262144(256KB)或 1048576(1MB)。
  • 如果值设置过小(< 4096),内核会自动取整,可能导致预期不符。

永久修改(重启后保持)

编辑 /etc/sysctl.conf/etc/sysctl.d/ 下的自定义配置文件(推荐):

# 使用编辑器打开配置文件
sudo nano /etc/sysctl.conf

在文件末尾添加:

net.core.wmem_default = 262144

保存退出后,执行以下命令使其生效:

sudo sysctl -p

🔍 验证当前值

sysctl net.core.wmem_default

示例输出:

net.core.wmem_default = 262144

⚠️ 注意事项

  1. 影响范围:该参数影响所有使用 socket 的协议(TCP、UDP、UNIX 域套接字等)。
  2. wmem_max 的关系
    • wmem_default 是默认值,wmem_max 是最大值(通过 setsockopt(SO_SNDBUF) 能设置的最大值)。
    • 建议 wmem_defaultwmem_max,否则默认值会被内核截断。
    • 查看当前最大值:sysctl net.core.wmem_max
  3. 应用场景参考
    • 高吞吐、低延迟服务(如 Redis、Nginx):建议 256KB~1MB。
    • 普通 Web 服务:默认值(208KB)已够用。
    • 文件传输 / 视频流:可适当提高至 2MB~16MB,但需注意内存占用。

📌 完整建议(结合 tcp_wmem)

如果专门优化 TCP,建议同时调整 net.ipv4.tcp_wmem(TCP 写缓冲区的 min/default/max 三元组),

net.ipv4.tcp_wmem = 4096 65536 16777216
#                   min  default max

这比仅改 wmem_default 更精细(因为 TCP 有独立的三段式控制)。

标签: 套接字写缓冲

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