从0到1:Linux 系统 TCP 缓冲区调优实战指南

在 Linux 中,你可以通过调整 TCP 缓冲区的大小来优化网络性能,尤其是当你的系统处理大量的网络流量时。调整 TCP 缓冲区有助于提升吞吐量、降低延迟并避免缓冲区溢出。以下是几个常见的 TCP 缓冲区设置和调整方法。

1. 查看当前的 TCP 缓冲区设置

你可以通过以下命令查看当前的 TCP 缓冲区设置:

sysctl net.ipv4.tcp_rmem sysctl net.ipv4.tcp_wmem

  • tcp_rmem:接收缓冲区的最小值、默认值和最大值

  • tcp_wmem:发送缓冲区的最小值、默认值和最大值

输出示例:

net.ipv4.tcp_rmem = 4096 87380 6291456 net.ipv4.tcp_wmem = 4096 16384 4194304

  • 第一个值:最小缓冲区大小

  • 第二个值:默认缓冲区大小

  • 第三个值:最大缓冲区大小

2. 调整 TCP 缓冲区大小

你可以通过修改 /etc/sysctl.conf 或使用 sysctl 命令来调整这些值。

调整接收和发送缓冲区的最小值、默认值和最大值

sysctl -w net.ipv4.tcp_rmem="4096 87380 16777216"sysctl -w net.ipv4.tcp_wmem="4096 16384 16777216"

上面的设置将 tcp_rmem 和 tcp_wmem 的最大缓冲区设置为 16 MB。

永久修改

要使更改永久生效,编辑 /etc/sysctl.conf 文件并添加以下行:

net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 16384 16777216

然后,执行以下命令重新加载配置:

sysctl -p

3. 调整 TCP 接收和发送缓冲区的窗口自动调整

Linux 还允许自动调整 TCP 缓冲区的大小,根据网络状况动态变化。你可以开启这个功能,提升性能:

sysctl -w net.ipv4.tcp_moderate_rcvbuf=1

4. 使用 ss 命令检查 TCP 缓冲区大小

ss 命令可以查看当前系统中每个连接的 TCP 缓冲区大小。

ss -t -a

5. 调整最大连接队列

在高并发环境下,你可能还需要调整系统中 TCP 的最大连接队列大小:

sysctl -w net.core.somaxconn=1024

总结:

  • tcp_rmem 和 tcp_wmem:用于调整接收和发送缓冲区的最小值、默认值和最大值。

  • tcp_moderate_rcvbuf:开启自动调整缓冲区大小,以适应网络波动。

  • somaxconn:最大连接队列的大小,用于提高高并发连接的性能。

调整这些参数可以优化系统的网络性能,特别是在高流量和高延迟的环境下。

如果你经常需要做网络性能测试、进行网络配置,留言**"网络工具",即可获取免费获取开源网络小工具**(如:拨测、带宽流量技术、子网掩码计算、公有云Region查询)

相关推荐
anew___5 小时前
《从零手写操作系统 (63):安全与加固——从内核保护到沙箱隔离》
网络·安全
Lzg_na5 小时前
VXLAN:背景、机制、报文字段与主机转发流程
网络
东鹏特饮5 小时前
系统运维(传统/通用运维)面试题
开发语言·php
Android系统攻城狮7 小时前
Linux FFmpeg深度解析之avcodec_default_get_encode_buffer调用流程与实战(二十八)
linux·运维·服务器·ffmpeg·车载音视频·ffmpeg音视频
乐维_lwops7 小时前
案例解读:大型综合性科创产业园运维监控落地实践
运维·网络·人工智能·安全·it监控·国产运维智能体
多客:duokelijie8 小时前
代练订单系统选型思路:跨品类游戏接入、订单分层管理、自动结算逻辑拆解!
数据库·mysql·微信小程序·前端框架·uni-app·php·持续部署
番茄啊9 小时前
linux 开启xftp连接
linux·运维·服务器
m0_715674439 小时前
政务泛监测体系能力排行:AI 重塑监测边界,治理的颗粒度革命
大数据·网络·人工智能·安全·网络安全·政务
AI 编程助手GPT10 小时前
curl 返回成功就能收文件?用本地 HTTP 验证错误页与超时
网络·网络协议·http
Julien200410 小时前
管理机密(一)
运维·服务器·开发语言·学习方法