本文目录导读:

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
⚠️ 注意事项
- 影响范围:该参数影响所有使用 socket 的协议(TCP、UDP、UNIX 域套接字等)。
- 与
wmem_max的关系:wmem_default是默认值,wmem_max是最大值(通过setsockopt(SO_SNDBUF)能设置的最大值)。- 建议
wmem_default≤wmem_max,否则默认值会被内核截断。 - 查看当前最大值:
sysctl net.core.wmem_max。
- 应用场景参考:
- 高吞吐、低延迟服务(如 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 有独立的三段式控制)。
标签: 套接字写缓冲
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播