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

最新推荐文章于 2022-10-24 22:45:27 发布
转载 最新推荐文章于 2022-10-24 22:45:27 发布 · 1.8k 阅读
· 0
· 1
文章标签:

#linux内核 #tcp #文档

Network 专栏收录该内容
45 篇文章
订阅专栏
本文介绍了如何通过调整/proc/sys/net/目录下的TCP/IP参数来优化网络性能,包括设置接收和发送缓冲区大小、禁用时间戳、启用选择确认等功能。

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/IP、Socket参数调优
Java程序员的知识博客
07-15 1773
它包含一些TCP/IP堆栈和虚拟内存系统的高级选项,可用来控制Linux网络配置,由于/proc/sys/net目录内容的临时性,建议把TCPIP参数的修改添加到/etc/sysctl.conf文件, 然后保存文件,使用命令“/sbin/sysctl –p”使之立即生效。以上是TCP socket的读写缓冲区的设置,每一项里面都有三个值,第一个值是缓冲区最小值,中间值是缓冲区的默认值,最后一个是缓冲区的最大值,虽然缓冲区的值不受core缓冲区的值的限制,但是缓冲区的最大值仍旧受限于core的最大值。
高性能Linux:TCP/IP内核参数调优之Linux TCP内核参数解析
Bob Liu的程序人生
04-28 3723
内核参数
参与评论 您还未登录,请先 登录 后发表或查看评论
设置tcp窗口,linux&windows 网络优化
uhml的专栏
02-23 1547
参考: 浅谈TCP优化 提高 Linux上socket 性能的技巧 为 Bandwidth Delay Product 调节 TCP 窗口 英特尔®以太网万兆位服务器适配器高级驱动程序设置为网络和 I/O 无盘为什么要修改网卡参数?怎么改?怎么对网卡优化? TCP Segment Offload(TSO)的实现原理浅析 调节英特尔®以太网适配器吞吐量性能 网络数据包分析 网卡
MySQL数据库机器配置的3个网络参数
u012565458的博客
10-24 2269
为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 8805
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 3677
/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 2466
PAWS机制 TCP协议中有一种机制,缓存了每个主机(即ip)过来的连接最新的timestamp值。这个缓存的值可以用于PAWS(Protect Against Wrapped Sequence numbers,是一个简单的防止重复报文的机制)中,来丢弃当前连接中可能的旧的重复报文。而Linux实现这个机制的方法就是同时启用net.ipv4.tcp_timestamps和net.ipv4.tcp_tw_recycle 这两个选项。 这种机制在 客户端-服务器 一对一的时候,没有任何问题,但是当服务器在负
/proc/sys/net/ipv4下各项的意义(转)
sunwill_chen的专栏
05-22 1119
tcp_syn_retries :INTEGER 默认值是5 对于一个新建连接,内核要发送多少个 SYN 连接请求才决定放弃。不应该大于255,默认值是5,对应于180秒左右时间。(对于大负载而物理通信良好的网络而言,这个值偏高,可修改为2.这个值仅仅是针对对外的连接,对进来的连接,是由tcp_retries1 决定的) tcp_synack_retries :INTEGER 默认值是5 对于远端
办公室无法请求服务器(tcp_timestamps 设置引发的网络问题)
平头哥(Adger)的博客
05-08 1216
问题描述: 办公室突然无法访问阿里云的其中一台服务器,IP可以ping通,但是端口不通,并不是完全不能访问,有时可以,有时不可以,有的电脑可以,有的电脑不可以,外网是可以的,问题一直没有解决,发现IDC机房的服务器是可以访问的,所以使用隧道技术,将办公室的80端口请求转发到阿里云,临时解决。一段时间后IDC服务器又出现类似问题。将问题报告给IDC机房,IDC机房更换端口后,恢复正常,过一段时间又出...
/proc/sys/net/ipv4/下各文件参数的详细含义
xiaokaige198747的专栏
03-07 1761
/proc/sys/net/ipv4/ip_forward   该文件表示是否打开IP转发。   0,禁止   1,转发   基本用途:如VPN、路由产品的利用; 出于安全考虑,Linux系统默认是禁止数据包转发的。所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将包发往本机另一网卡,该网卡根据路由表继续发送数据包。这通...
tcp_tw_recycle和tcp_timestamps的文章汇总
热门推荐
caianye的专栏
08-13 2万+
临近年关,人会变得浮躁,期间写的代码可谓乱七八糟。不过出来混始终是要还的,这不最近就发现一个PHP脚本时常连不上服务器。 遇到这类问题,我习惯于先用strace命令跟踪了一下看看: shell> strace php /path/to/file EADDRNOTAVAIL (Cannot assign requested address) 从字面结果看似乎是网络资源相关问题。这里顺便
linux kernel tcp参数调优
focus on security
03-15 522
TCP linux kernel 调优参数 2.6.32 标准内核 描述 默认值 优化值 /proc/sys/net/core/rmem_default 默认的TCP数据接收窗口大小(字节)。 229376 2...
linux内核参数详解 sysctl -a dns内核优化 dns优化 dnsmasq配置
yuezhilangniao的博客
07-13 3781
原文: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
CodeJoker

博客等级

码龄17年
37
原创
34
点赞
157
收藏
50
粉丝
关注
私信

热门文章

  • LINUX手动查看和修改MTU值的方法 85304
  • 关于SIGBUS的总结 63628
  • 关于LCP协商 20331
  • wireshark中window is full与window is zore的不同之处 17896
  • 关于@override报错的问题 16935

分类专栏

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

展开全部 收起

上一篇:
TCP/IP调优相关资料汇总
下一篇:
DLLMain 简单介绍

最新评论

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

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

大家在看

  • 字节verl开源重塑大模型RL训练
  • 【每天一个AI小知识】:什么是门控循环单元?
  • Python字符串编码与操作详解 465
  • GoBot智能Agent:AI驱动自动化 301
  • 不懂业务的测试不是好测试:如何成为产品最需要的测试专家

最新文章

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

目录

展开全部

收起

目录

展开全部

收起

上一篇:
TCP/IP调优相关资料汇总
下一篇:
DLLMain 简单介绍

分类专栏

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

展开全部 收起

目录

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
表情包 代码片
  • HTML/XML
  • objective-c
  • Ruby
  • PHP
  • C
  • C++
  • JavaScript
  • Python
  • Java
  • CSS
  • SQL
  • 其它
 条评论被折叠 查看
被折叠的  条评论 为什么被折叠? 到【灌水乐园】发言
查看更多评论
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值