Linux内核: 修改TCP/IP调优参数

最新推荐文章于 2022-10-24 22:45:27 发布
CodeJoker 最新推荐文章于 2022-10-24 22:45:27 发布
阅读量1.8k 收藏 1
点赞数
分类专栏: Network 文章标签: linux内核 tcp 文档
Network 专栏收录该内容
45 篇文章
订阅专栏
本文介绍了如何通过调整/proc/sys/net/目录下的TCP/IP参数来优化网络性能,包括设置接收和发送缓冲区大小、禁用时间戳、启用选择确认等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

From: http://www.abc188.com/info/html/wangzhanyunying/jianzhanjingyan/20080417/69302.html

 

任何的TCP/IP调优参数都位于/proc/sys/net/目录. 例如, 下面是最重要的一些调优参数, 后面是他们的含义:

 

1. /proc/sys/net/core/rmem_max — 最大的TCP数据接收缓冲
2. /proc/sys/net/core/wmem_max — 最大的TCP数据发送缓冲
3. /proc/sys/net/ipv4/tcp_timestamps — 时间戳在(请参考RFC 1323)TCP的包头增加12个字节
4. /proc/sys/net/ipv4/tcp_sack — 有选择的应答
5. /proc/sys/net/ipv4/tcp_window_scaling — 支持更大的TCP窗口. 假如TCP窗口最大超过65535(64K), 必须配置该数值为1
6. rmem_default — 默认的接收窗口大小
7. rmem_max — 接收窗口的最大大小
8. wmem_default — 默认的发送窗口大小
9. wmem_max — 发送窗口的最大大小

/proc目录下的任何内容都是临时性的, 所以重启动系统后任何修改都会丢失.

建议在系统启动时自动修改TCP/IP参数:

把下面代码增加到/etc/rc.local文档, 然后保存文档, 系统重新引导的时候会自动修改下面的TCP/IP参数:

echo 256960 > /proc/sys/net/core/rmem_default
echo 256960 > /proc/sys/net/core/rmem_max
echo 256960 > /proc/sys/net/core/wmem_default
echo 256960 > /proc/sys/net/core/wmem_max

echo 0 > /proc/sys/net/ipv4/tcp_timestamps
echo 1 > /proc/sys/net/ipv4/tcp_sack
echo 1 > /proc/sys/net/ipv4/tcp_window_scaling

TCP/IP参数都是自解释的, TCP窗口大小配置为256960, 禁止TCP的时间戳(取消在每个数据包的头中增加12字节), 支持更大的TCP窗口和TCP有选择的应答.

上面数值的设定是根据互连网连接和最大带宽/延迟率来决定.

注: 上面实例中的数值能够实际应用, 但他只包含了一部分参数.

另外一个方法: 使用 /etc/sysctl.conf 在系统启动时将参数配置成您所配置的值:

net.core.rmem_default = 256960
net.core.rmem_max = 256960
net.core.wmem_default = 256960
net.core.wmem_max = 256960

net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_sack =1
net.ipv4.tcp_window_scaling = 1

确定要放弃本次机会?
福利倒计时
: :

立减 ¥

普通VIP年卡可用
立即使用
CodeJoker
关注 关注
  • 0
    点赞
  • 踩
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
  • 分享
    复制链接
    分享到 QQ
    分享到新浪微博
    扫一扫
  • 举报
    举报
专栏目录
linux 配置tcp参数,Linux系统内核:修改TCP/IP调优参数
weixin_29531897的博客
05-12 1900
所有的TCP/IP调优参数都位于/proc/sys/net/目录。例如, 下面是最重要的一些调优参数, 后面是它们的含义:1. /proc/sys/net/core/rmem_max — 最大的TCP数据接收缓冲。2. /proc/sys/net/core/wmem_max — 最大的TCP数据发送缓冲。3. /proc/sys/net/ipv4/tcp_timestamps — 时间戳在(请参考...
高性能Linux:TCP/IP内核参数调优之Linux TCP内核参数解析
Bob Liu的程序人生
04-28 3657
内核参数
参与评论 您还未登录,请先 登录 后发表或查看评论
设置tcp窗口,linux&windows 网络优化
uhml的专栏
02-23 1521
参考: 浅谈TCP优化 提高 Linux上socket 性能的技巧 为 Bandwidth Delay Product 调节 TCP 窗口 英特尔®以太网万兆位服务器适配器高级驱动程序设置为网络和 I/O 无盘为什么要修改网卡参数?怎么改?怎么对网卡优化? TCP Segment Offload(TSO)的实现原理浅析 调节英特尔®以太网适配器吞吐量性能 网络数据包分析 网卡
MySQL数据库机器配置的3个网络参数
u012565458的博客
10-24 2219
为1表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭。为1表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。在关闭net.ipv4.tcp_tw_reuse的情况下,是不能重复利用TIME_WAIT的,需要等待TIME_WAIT自己关闭,并且TIME_WAIT的时间不能通过参数进行配置,如果修改的话,需要自己编译内核。tcp_timestamps设计目的是为了记录数据包的发送时间,过程如下。
net.ipv4.tcp_timestamps引发的tcp syn无响应案
pyxllq的博客
05-17 2万+
    在我目前一个高并发的项目中,一度出现服务器不再响应任何TCP的syn请求,新的客户端死活介入不了服务。出现该状态之前由于并发亮的增加,曾经优化过服务器,主要是将TIME-WAIT sockets重新用于新的TCP连接,优化如下:1.修改/ect/sysctl.confnet.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4...
Linux的net.ipv4.tcp_timestamps参数
weixin_34232744的博客
07-03 8746
Q1 今天发生了一个奇怪的现象,在家里始终打开公司的网站打开不了,我就齐了怪了,然后我就各种测试,从ping到dig域名,然后再curl,都是没有问题的,但是就是打不开,最好没有办法只能抓包了,从抓包的然后来看就是syn-ack没有返回,然后就google到底是因为什么? 原因就是net.ipv4.tcp_timestamps=1,启用了时间戳,原理如下: 问题出在了 tcp 三次握手,如果有一个...
TCP之timestamps选项
redwingz的博客
03-20 1万+
默认情况下内核是开启timestamps选项的,如下tcp_sk_init函数中对sysctl_tcp_timestamps的初始化。 static int __net_init tcp_sk_init(struct net *net) { net->ipv4.sysctl_tcp_timestamps = 1; 也可通过PROC文件tcp_timestamps控制选项行为,tcp...
Linux 内核源码剖析- TCP.IP 实现(上下册).pdf
09-22
6. 网络子系统的优化:讲述了如何对Linux内核网络性能进行优化,包括内核参数的调优、内核网络数据结构的优化、以及流量控制等。 7. 实用案例分析:通过具体案例分析,展示了在Linux环境下如何进行网络问题的定位、...
(下册)Linux 内核源码剖析- TCP.IP 实现.pdf
最新发布
09-22
书中不仅涉及了Linux内核的网络子系统架构,还细致讲解了内核网络代码的各个组成部分,对于内核参数配置、网络性能调优等高级话题也有所涉猎。通过剖析源码,读者可以直观地看到协议栈的工作流程,掌握数据包从进入...
优化Solaris内核安全设置:深入TCP/IP参数调优
该书主要关注Solaris 10的新特性,如改进的TCP/IP协议栈、强化的密码系统架构、跨平台优化机制以及与Linux的兼容性等,这些都是系统管理员进行有效内核调优的基础。 作者Ido Dubrawsky强调,Solaris内核提供了大量...
Linux下/proc/sys/net/ipv4/详解
、moddemod
03-30 3426
/proc/sys/net/ipv4/下文件详细解释: 1) /proc/sys/net/ipv4/ip_forward   该文件表示是否打开IP转发。   0,禁止   1,转发   基本用途:如VPN、路由产品的利用;   出于安全考虑,Linux系统默认是禁止数据包转发的。所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,...
由于net.ipv4.tcp_tw_recycle和net.ipv4.tcp_timestamps引发的请求无响应问题
top_explore的博客
07-28 2319
PAWS机制 TCP协议中有一种机制,缓存了每个主机(即ip)过来的连接最新的timestamp值。这个缓存的值可以用于PAWS(Protect Against Wrapped Sequence numbers,是一个简单的防止重复报文的机制)中,来丢弃当前连接中可能的旧的重复报文。而Linux实现这个机制的方法就是同时启用net.ipv4.tcp_timestamps和net.ipv4.tcp_tw_recycle 这两个选项。 这种机制在 客户端-服务器 一对一的时候,没有任何问题,但是当服务器在负
net.ipv4.tcp_tw_reuse是干嘛的?
豌豆的博客
12-15 7225
文章目录前言准备工作sd01的配置sd02的配置开始测试关闭net.ipv4.tcp_tw_reuse打开net.ipv4.tcp_tw_reuse关闭客户端的net.ipv4.tcp_timestamps关闭服务器端的net.ipv4.tcp_timestampsreuse的握手过程和正常握手是一样的吗?总结 前言 昨天萌新学习了net.ipv4.ip_local_port_range参数的作用,今天再来学习一下net.ipv4.tcp_tw_reuse这个参数。 ​ 下面是萌新测试环境的系统和内核版本
/proc/sys/net/ipv4下各项的意义(转)
sunwill_chen的专栏
05-22 1095
tcp_syn_retries :INTEGER 默认值是5 对于一个新建连接,内核要发送多少个 SYN 连接请求才决定放弃。不应该大于255,默认值是5,对应于180秒左右时间。(对于大负载而物理通信良好的网络而言,这个值偏高,可修改为2.这个值仅仅是针对对外的连接,对进来的连接,是由tcp_retries1 决定的) tcp_synack_retries :INTEGER 默认值是5 对于远端
办公室无法请求服务器(tcp_timestamps 设置引发的网络问题)
平头哥(Adger)的博客
05-08 1122
问题描述: 办公室突然无法访问阿里云的其中一台服务器,IP可以ping通,但是端口不通,并不是完全不能访问,有时可以,有时不可以,有的电脑可以,有的电脑不可以,外网是可以的,问题一直没有解决,发现IDC机房的服务器是可以访问的,所以使用隧道技术,将办公室的80端口请求转发到阿里云,临时解决。一段时间后IDC服务器又出现类似问题。将问题报告给IDC机房,IDC机房更换端口后,恢复正常,过一段时间又出...
/proc/sys/net/ipv4/下各文件参数的详细含义
xiaokaige198747的专栏
03-07 1676
/proc/sys/net/ipv4/ip_forward   该文件表示是否打开IP转发。   0,禁止   1,转发   基本用途:如VPN、路由产品的利用; 出于安全考虑,Linux系统默认是禁止数据包转发的。所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将包发往本机另一网卡,该网卡根据路由表继续发送数据包。这通...
linux内核参数详解 sysctl -a dns内核优化 dns优化 dnsmasq配置
yuezhilangniao的博客
07-13 3683
原文:https://www.cnblogs.com/cnwcl/p/9811327.html sysctl 命令用于查看和修改内核参数 查看指定参数: sysctl kernel.threads-max 查看所有参数: sysctl -a 修改指定参数: sysctl -w kernel.threds-max=102400 sysctl 设置的内核参数在 /proc/sys 目录下,格式为: 目录.文件 比如:kernel.threads-max 对应目录 /proc/sys/kernel 下的 thr
tcp_tw_recycle和tcp_timestamps的文章汇总
热门推荐
caianye的专栏
08-13 2万+
临近年关,人会变得浮躁,期间写的代码可谓乱七八糟。不过出来混始终是要还的,这不最近就发现一个PHP脚本时常连不上服务器。 遇到这类问题,我习惯于先用strace命令跟踪了一下看看: shell> strace php /path/to/file EADDRNOTAVAIL (Cannot assign requested address) 从字面结果看似乎是网络资源相关问题。这里顺便
CodeJoker

博客等级

码龄17年
37
原创
33
点赞
156
收藏
49
粉丝
关注
私信

热门文章

  • LINUX手动查看和修改MTU值的方法 85092
  • 关于SIGBUS的总结 62911
  • 关于LCP协商 20214
  • wireshark中window is full与window is zore的不同之处 17825
  • 关于@override报错的问题 16875

分类专栏

  • 3G-VT
    4篇
  • Android
    32篇
  • CM
    1篇
  • DirectShow
    7篇
  • Graphics
    7篇
  • GSM&3G
    18篇
  • Linux
    33篇
  • Misc
    14篇
  • Network
    45篇
  • UML
    1篇
  • Windows
    2篇

展开全部 收起

最新评论

  • 怎样在同一终端上多帐号登陆同一服务器?

    2401_87022832: 你好,三个运营商服务器独立运行,悟着同一套软件,统一口径,数据采集6分钟更新1次,但不同运营商终端客户同时访问服务器看到不一致的数据,是什么问题吗?

  • 说的比较通俗mux

    我心向阳iu: 我在大佬的评论区瑟瑟发抖,希望能引起注意并回访我的博客哈哈

  • LINUX手动查看和修改MTU值的方法

    qq_41364217: 重启后不生效

  • 关于SIGBUS的总结

    洞穴夜莺: 但是在x86_64上后者也是SIGSEGV

  • wireshark中window is full与window is zore的不同之处

    weixin_40164628: “都是通知对端自己的接受窗口已经满了不能再向我发送数据了”---这个说错了。作为发送方,当待发送的数据为0,也就是发了出去,但是都没有确认,允许发送的大小为0,也就是说,在途字节数等于对方的接收窗口,这个时候,Wireshark打上【TCP window Full】标记,表示我不能再发送数据了。

大家在看

  • 2000-2023年 地级市-多中心程度和人口集聚程度数据-社科经管实证数据 501
  • 打卡信奥刷题(1379)用C++实现信奥 B4050 [GESP202409 五级] 挑战怪物 316
  • Python 数据类型方法(1) 433
  • C++:auto自动类型推导
  • 微信小程序开发--结构目录

最新文章

  • Android Build: Tips and Tricks
  • Makefile函数总结
  • android 对于apk签名汇总
2011年11篇
2010年50篇
2009年78篇

目录

展开全部

收起

目录

展开全部

收起

分类专栏

  • 3G-VT
    4篇
  • Android
    32篇
  • CM
    1篇
  • DirectShow
    7篇
  • Graphics
    7篇
  • GSM&3G
    18篇
  • Linux
    33篇
  • Misc
    14篇
  • Network
    45篇
  • UML
    1篇
  • Windows
    2篇

展开全部 收起

目录

评论
被折叠的  条评论 为什么被折叠? 到【灌水乐园】发言
查看更多评论
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值