0

0

如何优化TCP参数 sysctl网络性能调优

P粉602998670

P粉602998670

发布时间:2025-08-06 09:20:02

|

1029人浏览过

|

来源于php中文网

原创

优化tcp参数可显著提升高并发、高延迟或高带宽场景下的网络性能,1. 调整tcp缓冲区大小以匹配bdp,设置rmem/wmem的min/default/max值并启用tcp_moderate_rcvbuf;2. 启用tcp fast open(tcp_fastopen=3)以减少握手延迟;3. 增大somaxconn和tcp_max_syn_backlog,开启tcp_syncookies,配置tcp_tw_reuse和适当调低tcp_fin_timeout以优化连接队列;4. 选用bbr拥塞控制算法(tcp_congestion_control=bbr)提升吞吐量;5. 配置tcp_keepalive_time、tcp_keepalive_intvl和tcp_keepalive_probes以增强长连接稳定性,并调整tcp_retries1/2控制重传;6. 启用tcp_window_scaling、tcp_sack、tcp_timestamps等特性以提升传输效率,最终通过sysctl加载配置并结合实际场景持续监控调优,确保性能提升的同时避免资源过度消耗,配置需根据业务特征逐步验证并生效。

如何优化TCP参数 sysctl网络性能调优

优化 TCP 参数以提升网络性能,尤其是在高并发、高延迟或高带宽的场景下,是系统调优中的关键环节。通过合理配置

sysctl
内核参数,可以显著改善网络吞吐量、降低延迟、提高连接稳定性。以下是常见的 TCP 网络性能调优建议,适用于 Linux 系统。


一、调整 TCP 缓冲区大小

TCP 缓冲区直接影响数据发送和接收的效率,特别是在高带宽延迟积(BDP)较大的网络中。

# 设置 TCP 接收缓冲区的最小、默认和最大值(单位:字节)
net.core.rmem_min = 4096
net.core.rmem_default = 262144
net.core.rmem_max = 16777216

# 设置 TCP 发送缓冲区
net.core.wmem_min = 4096
net.core.wmem_default = 262144
net.core.wmem_max = 16777216

# TCP 自动调优接收缓冲区
net.ipv4.tcp_moderate_rcvbuf = 1

# 设置 TCP 连接的接收和发送缓冲区范围
net.ipv4.tcp_rmem = 4096 262144 16777216
net.ipv4.tcp_wmem = 4096 262144 16777216
说明:对于千兆以上网络或跨地域通信,建议将最大缓冲区设为 16MB 甚至更高,以充分利用带宽。

二、启用 TCP 快速打开(TFO)

TCP Fast Open 可以在三次握手完成前就开始传输数据,减少延迟。

# 启用 TCP Fast Open(客户端和服务端)
net.ipv4.tcp_fastopen = 3

注意:需应用程序支持(如 Nginx 1.5.8+、现代浏览器等),且内核版本需 3.7+。


三、优化连接队列和并发能力

对于高并发服务(如 Web 服务器),连接队列容易成为瓶颈。

# 增大监听队列长度
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535

# 启用 SYN Cookies(防止 SYN Flood 攻击)
net.ipv4.tcp_syncookies = 1

# 减少 TIME_WAIT 状态连接的影响
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0  # 已废弃,不建议开启
net.ipv4.tcp_fin_timeout = 30

说明

  • tcp_tw_reuse
    允许将处于 TIME_WAIT 状态的 socket 用于新连接(客户端场景更有效)。
  • tcp_fin_timeout
    控制 FIN_WAIT 状态的超时时间,适当调低可加快资源释放。

四、启用高效拥塞控制算法

Linux 支持多种拥塞控制算法,可根据网络环境选择。

PHP高级开发技巧与范例
PHP高级开发技巧与范例

PHP是一种功能强大的网络程序设计语言,而且易学易用,移植性和可扩展性也都非常优秀,本书将为读者详细介绍PHP编程。 全书分为预备篇、开始篇和加速篇三大部分,共9章。预备篇主要介绍一些学习PHP语言的预备知识以及PHP运行平台的架设;开始篇则较为详细地向读者介绍PKP语言的基本语法和常用函数,以及用PHP如何对MySQL数据库进行操作;加速篇则通过对典型实例的介绍来使读者全面掌握PHP。 本书

下载
# 查看当前可用和默认算法
# cat /proc/sys/net/ipv4/tcp_available_congestion_control
# cat /proc/sys/net/ipv4/tcp_congestion_control

# 推荐使用 BBR(适合高带宽、高延迟网络)
net.ipv4.tcp_congestion_control = bbr

BBR 优势:由 Google 开发,不依赖丢包判断拥塞,更适合现代网络,能显著提升吞吐量。需内核 4.9+。


五、优化连接保持与重传机制

合理设置连接保活和重传参数,提升稳定性。

# 启用 TCP 保活机制
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_intvl = 60
net.ipv4.tcp_keepalive_probes = 10

# 减少重传超时时间
net.ipv4.tcp_retries1 = 3
net.ipv4.tcp_retries2 = 8

适用场景:长连接服务(如 WebSocket、数据库连接池)建议开启保活,避免连接“僵死”。


六、其他关键优化项

# 启用窗口缩放(Window Scaling),支持大窗口
net.ipv4.tcp_window_scaling = 1

# 启用时间戳(RTT 估算和 PAWS)
net.ipv4.tcp_timestamps = 1

# 允许在 TIME_WAIT 状态下重用连接(NAT 环境谨慎使用)
net.ipv4.tcp_tw_reuse = 1

# 开启 TCP SACK(选择性确认),提升丢包恢复效率
net.ipv4.tcp_sack = 1

# 开启 F-RTO(改进的恢复机制)
net.ipv4.tcp_fack = 1

应用配置

修改

/etc/sysctl.conf
或新建
/etc/sysctl.d/99-tcp-tune.conf

# TCP 优化配置
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 262144 16777216
net.ipv4.tcp_wmem = 4096 262144 16777216
net.ipv4.tcp_congestion_control = bbr
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_moderate_rcvbuf = 1
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_intvl = 60
net.ipv4.tcp_keepalive_probes = 10
net.ipv4.tcp_fastopen = 3

应用配置:

sysctl -p /etc/sysctl.d/99-tcp-tune.conf

注意事项

  • 调优需结合实际业务场景(如 CDN、数据库、视频流等)。
  • 高缓冲区会增加内存消耗,需评估系统资源。
  • 生产环境建议逐步调整并监控效果(如使用
    ss
    netstat
    sar -n TCP
    工具)。
  • 某些参数在容器环境中可能受限,需在宿主或容器内分别配置。

基本上就这些常见的调优点。不复杂,但容易忽略细节。关键是根据网络特征和负载类型选择合适的参数组合。

相关文章

数码产品性能查询
数码产品性能查询

该软件包括了市面上所有手机CPU,手机跑分情况,电脑CPU,电脑产品信息等等,方便需要大家查阅数码产品最新情况,了解产品特性,能够进行对比选择最具性价比的商品。

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

227

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

490

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

496

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

223

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

329

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3505

2024.08.07

default gateway怎么配置
default gateway怎么配置

配置default gateway的步骤:1、了解网络环境;2、获取路由器IP地址;3、登录路由器管理界面;4、找到并配置WAN口设置;5、配置默认网关;6、保存设置并退出;7、检查网络连接是否正常。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

219

2023.12.07

页面置换算法
页面置换算法

页面置换算法是操作系统中用来决定在内存中哪些页面应该被换出以便为新的页面提供空间的算法。本专题为大家提供页面置换算法的相关文章,大家可以免费体验。

388

2023.08.14

php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

7

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
微信小程序开发之API篇
微信小程序开发之API篇

共15课时 | 1.2万人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.3万人学习

Swoft2.x速学之http api篇课程
Swoft2.x速学之http api篇课程

共16课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号