仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1001|回复: 9
打印 上一主题 下一主题

[CentOS(社区)] CentOS教程之linux内核参数正文与优化

[复制链接]
柔情似水 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:43:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
欢迎大家来到仓酷云论坛!目次
1、linux内核参数正文
2、两种修正内核参数***
3、内核优化参数临盆设置

参数注释由收集上搜集收拾,经常使用优化参数对照了网上多个实践使用举行表格化收拾,使检察更直不雅。
进修linux也有很多工夫了,每次优化linux内核参数时,都是在网上拷贝而利用,乃至他人没有列出来的参数就不论了,岂非我就不必要了吗?
参考文章:
linux内核TCP相干参数注释
http://os.chinaunix.net/a2008/0918/985/000000985483.shtml
linux内核参数优化
http://blog.chinaunix.net/uid-29081804-id-3830203.html
linux内核调剂和内核参数详解
http://blog.csdn.net/cnbird2008/article/details/4419354
1、linux内核参数正文

以下表格中白色字体为经常使用优化参数
依据参数文件所处目次分歧而举行分表收拾
以下文件地点目次:/proc/sys/net/ipv4/
称号

默许值

倡议值

形貌
tcp_syn_retries
5

1

关于一个新建毗连,内核要发送几个SYN毗连哀求才决意保持。不该该年夜于255,默许值是5,对应于180秒摆布工夫。。(关于年夜负载而物理通讯优秀的收集而言,这个值偏高,可修正为2.这个值仅仅是针对对外的毗连,对出去的毗连,是由tcp_retries1决意的)
tcp_synack_retries
5

1

关于远真个毗连哀求SYN,内核会发送SYN+ACK数据报,以确认收到上一个SYN毗连哀求包。这是所谓的三次握手(threewayhandshake)机制的第二个步调。这里决意内核在保持毗连之前所送出的SYN+ACK数量。不该该年夜于255,默许值是5,对应于180秒摆布工夫。
tcp_keepalive_time
7200

600

TCP发送keepalive探测动静的距离工夫(秒),用于确认TCP毗连是不是无效。
避免双方创建毗连但不发送数据的打击。
tcp_keepalive_probes
9

3

TCP发送keepalive探测动静的距离工夫(秒),用于确认TCP毗连是不是无效。
tcp_keepalive_intvl
75

15

探测动静未取得呼应时,重发该动静的距离工夫(秒)。默许值为75秒。(关于一般使用来讲,这个值有一些偏年夜,能够依据必要改小.出格是web类办事器必要改小该值,15是个对照符合的值)
tcp_retries1
3

3

保持回应一个TCP毗连哀求前o必要举行几次重试。RFC划定最低的数值是3
tcp_retries2
15

5

在抛弃激活(已创建通信情况)的TCP毗连之前o必要举行几次重试。默许值为15,依据RTO的值来决意,相称于13-30分钟(RFC1122划定,必需年夜于100秒).(这个值依据今朝的收集设置,能够得当地改小,我的收集内修正为了5)
tcp_orphan_retries
7

3

在近端抛弃TCP毗连之前o要举行几次重试。默许值是7个o相称于50秒-16分钟o视RTO而定。假如您的体系是负载很年夜的web办事器o那末大概必要下降该值o这类sockets大概会泯灭大批的资本。别的参的考tcp_max_orphans。(现实上做NAT的时分,下降该值也是优点明显的,我自己的收集情况中下降该值为3)
tcp_fin_timeout
60

2

关于本端断开的socket毗连,TCP坚持在FIN-WAIT-2形态的工夫。对方大概会断开毗连或一向不停止毗连或不成意料的历程出生。默许值为60秒。
tcp_max_tw_buckets
180000

36000

体系在同时所处置的最年夜timewaitsockets数量。假如凌驾此数的话otime-waitsocket会被当即砍除而且显现告诫信息。之以是要设定这个限定o地道为了抵抗那些复杂的DoS打击o不外o假如收集前提必要比默许值更多o则能够进步它(也许还要增添内存)。(现实上做NAT的时分最好能够得当地增添该值)
tcp_tw_recycle
0

1

翻开疾速TIME-WAITsockets接纳。除非失掉手艺专家的倡议或请求o请不要随便修正这个值。(做NAT的时分,倡议翻开它)
tcp_tw_reuse
0

1

暗示是不是同意从头使用处于TIME-WAIT形态的socket用于新的TCP毗连(这个对疾速重启动某些办事,而启动后提醒端口已被利用的情况十分有匡助)
tcp_max_orphans
8192

32768

体系所能处置不属于任何历程的TCPsockets最年夜数目。假设凌驾这个数目o那末不属于任何历程的毗连会被当即reset,并同时显现告诫信息。之以是要设定这个限定o地道为了抵抗那些复杂的DoS打击o万万不要依附这个或是工资的下降这个限定。假如内存年夜更应当增添这个值。(这个值RedhatAS版本中设置为32768,可是良多防火墙修正的时分,倡议该值修正为2000)
tcp_abort_on_overflow
0

0

当保卫历程太忙而不克不及承受新的毗连,就象对方发送reset动静,默许值是false。这意味着当溢出的缘故原由是由于一个偶尔的猝发,那末毗连将规复形态。只要在你确信保卫历程真的不克不及完成毗连哀求时才翻开该选项,该选项会影响客户的利用。(看待已满载的sendmail,apache这类办事的时分,这个能够很快让客户端停止毗连,能够赐与办事步伐处置已有毗连的缓冲时机,以是良多防火墙上保举翻开它)
tcp_syncookies
0

1

只要在内核编译时选择了CONFIG_SYNCOOKIES时才会产生感化。当呈现syn期待行列呈现溢出时象对方发送syncookies。目标是为了避免synflood打击。
tcp_stdurg
0

0

利用TCPurgpointer字段中的主机哀求注释功效。年夜部分的主机都利用老旧的BSD注释,因而假如您在Linux翻开它o或会招致不克不及和它们准确相同。
tcp_max_syn_backlog
1024

16384

关于那些仍然还未取得客户端确认的毗连哀求o必要保留在行列中最年夜数量。关于凌驾128Mb内存的体系o默许值是1024o低于128Mb的则为128。假如办事器常常呈现过载o能够实验增添这个数字。告诫u假设您将此值设为年夜于1024o最好修正include/net/tcp.h内里的TCP_SYNQ_HSIZEo以坚持TCP_SYNQ_HSIZE*16(SYNFlood打击使用TCP协定分布握手的缺点,假造子虚源IP地点发送大批TCP-SYN半翻开毗连到方针体系,终极招致方针体系Socket行列资本耗尽而没法承受新的毗连。为了对付这类打击,古代Unix体系中广泛接纳多毗连行列处置的体例来缓冲(而不是办理)这类打击,是用一个基础行列处置一般的完整毗连使用(Connect()Accept()),是用另外一个行列独自寄存半翻开毗连。这类双行列处置体例和其他一些体系内核办法(比方Syn-Cookies/Caches)团结使用时,可以对照无效的减缓小范围的SYNFlood打击(现实证实)
tcp_window_scaling
1

1

该文件暗示设置tcp/ip会话的滑动窗口巨细是不是可变。参数值为布尔值,为1时暗示可变,为0时暗示不成变。tcp/ip一般利用的窗口最年夜可到达65535字节,关于高速收集,该值大概太小,这时候候假如启用了该功效,可使tcp/ip滑动窗口巨细增年夜数个数目级,从而进步数据传输的才能(RFC1323)。(对一般地百M收集而言,封闭会下降开支,以是假如不是高速收集,能够思索设置为0)
tcp_timestamps
1

1

Timestamps用在别的一些器材中o能够提防那些假造的sequence号码。一条1G的宽带线路也许会重碰到带out-of-line数值的旧sequence号码(假设它是因为前次发生的)。Timestamp会让它晓得这是个旧封包。(该文件暗示是不是启用以一种比超时重发更准确的***(RFC1323)来启用对RTT的盘算;为了完成更好的功能应当启用这个选项。)
tcp_sack
1

1

利用SelectiveACKo它能够用来查找特定的丢失的数据报---因而有助于疾速规复形态。该文件暗示是不是启用有选择的应对(SelectiveAcknowledgment),这能够经由过程有选择地应对乱序吸收到的报文来进步功能(如许可让发送者只发送丧失的报文段)。(关于广域网通讯来讲这个选项应当启用,可是这会增添对CPU的占用。)
tcp_fack
1

1

翻开FACK堵塞制止和疾速重传功效。(注重,当tcp_sack设置为0的时分,这个值即便设置为1也有效)[这个是TCP毗连靠谱的中心功效]
tcp_dsack
1

1

同意TCP发送"两个完整不异"的SACK。
tcp_ecn
0

0

TCP的间接堵塞公告功效。
tcp_reordering
3

6

TCP流中重排序的数据报最年夜数目。(一样平常有看到保举把这个数值稍微调剂年夜一些,好比5)
tcp_retrans_collapse
1

0

关于某些有bug的打印机供应针对其bug的兼容性。(一样平常不必要这个撑持,能够封闭它)
tcp_wmemmindefaultmax
4096

16384

131072

8192

131072

16777216

发送缓存设置
min:为TCPsocket预留用于发送缓冲的内存最小值。每一个tcpsocket都能够在倡议今后都可使用它。默许值为4096(4K)。
default:为TCPsocket预留用于发送缓冲的内存数目,默许情形下该值会影响别的协定利用的net.core.wmem_default值,一样平常要低于net.core.wmem_default的值。默许值为16384(16K)。
max:用于TCPsocket发送缓冲的内存最年夜值。该值不会影响net.core.wmem_max,"静态"选择参数SO_SNDBUF则不受该值影响。默许值为131072(128K)。(关于办事器而言,增添这个参数的值关于发送数据很有匡助,在我的收集情况中,修正为了51200131072204800)
tcp_rmemmindefaultmax
4096

87380

174760

32768

131072

16777216

吸收缓存设置
同tcp_wmem
tcp_memmindefaultmax
依据内存盘算

786432

10485761572864

low:当TCP利用了低于该值的内存页面数时,TCP不会思索开释内存。即低于此值没有内存压力。(幻想情形下,这个值应与指定给tcp_wmem的第2个值相婚配-这第2个值标明,最年夜页面巨细乘以最年夜并发哀求数除以页巨细(131072*300/4096)。)
pressure:当TCP利用了凌驾该值的内存页面数目时,TCP试图不乱其内存利用,进进pressure形式,当内存损耗低于low值时则加入pressure形态。(幻想情形下这个值应当是TCP可使用的总缓冲区巨细的最年夜值(204800*300/4096)。)
high:同意一切tcpsockets用于列队缓冲数据报的页面量。(假如凌驾这个值,TCP毗连将被回绝,这就是为何不要令其过于守旧(512000*300/4096)的缘故原由了。在这类情形下,供应的代价很年夜,它能处置良多毗连,是所预期的2.5倍;大概使现有毗连可以传输2.5倍的数据。我的收集里为192000300000732000)
一样平常情形下这些值是在体系启动时依据体系内存数目盘算失掉的。
tcp_app_win
31

31

保存max(window/2^tcp_app_win,mss)数目的窗口因为使用缓冲。当为0时暗示不必要缓冲。
tcp_adv_win_scale
2

2

盘算缓冲开支bytes/2^tcp_adv_win_scale(假如tcp_adv_win_scale>0)大概bytes-bytes/2^(-tcp_adv_win_scale)(假如tcp_adv_win_scaleBOOLEAN>0)
tcp_low_latency
0

0

同意TCP/IP栈顺应在高吞吐量情形下低延时的情形;这个选项一样平常情况是的禁用。(但在构建Beowulf集群的时分,翻开它很有匡助)
tcp_westwood
0

0

启用发送者真个堵塞把持算法,它能够保护对吞吐量的评价,并试图对带宽的全体使用情形举行优化;关于WAN通讯来讲应当启用这个选项。
tcp_bic
0

0

为疾速长间隔收集启用BinaryIncreaseCongestion;如许能够更好天时用以GB速率举行操纵的链接;关于WAN通讯应当启用这个选项。
ip_forward
0


NAT必需开启IP转发撑持,把该值写1
ip_local_port_range:minmax
32768

61000

1024

65000

暗示用于向外毗连的端口局限,默许对照小,这个局限一样会直接用于NAT表范围。
ip_conntrack_max
65535

65535

体系撑持的最年夜ipv4毗连数,默许65536(现实上这也是实际最年夜值),同时这个值和你的内存巨细有关,假如内存128M,这个值最年夜8192,1G以上内存这个值都是默许65536

所处目次/proc/sys/net/ipv4/netfilter/
文件必要翻开防火墙才会存在
称号

默许值

倡议值

形貌
ip_conntrack_max
65536

65536

体系撑持的最年夜ipv4毗连数,默许65536(现实上这也是实际最年夜值),同时这个值和你的内存巨细有关,假如内存128M,这个值最年夜8192,1G以上内存这个值都是默许65536,这个值受/proc/sys/net/ipv4/ip_conntrack_max限定

ip_conntrack_tcp_timeout_established
432000

180

已创建的tcp毗连的超不时间,默许432000,也就是5天。影响:这个值过上将招致一些大概已不必的毗连常驻于内存中,占用大批链接资本,从而大概招致NATip_conntrack:tablefull的成绩。倡议:关于NAT负载绝对本机的NAT表巨细很严重的时分,大概必要思索减少这个值,以尽早扫除毗连,包管有可用的毗连资本;假如不严重,不用修正
ip_conntrack_tcp_timeout_time_wait
120

120

time_wait形态超不时间,凌驾该工夫就扫除该毗连
ip_conntrack_tcp_timeout_close_wait
60

60

close_wait形态超不时间,凌驾该工夫就扫除该毗连
ip_conntrack_tcp_timeout_fin_wait
120

120

fin_wait形态超不时间,凌驾该工夫就扫除该毗连

文件所处目次/proc/sys/net/core/
称号
默许值

倡议值

形貌
netdev_max_backlog


1024

16384

每一个收集接口吸收数据包的速度比内核处置这些包的速度快时,同意送到行列的数据包的最年夜数量,对重负载办事器而言,该值必要调高一点。
somaxconn


128

16384

用来限定监听(LISTEN)行列最年夜数据包的数目,凌驾这个数目就会招致链接超时大概触发重传机制。
web使用中listen函数的backlog默许会给我们内核参数的net.core.somaxconn限定到128,而nginx界说的NGX_LISTEN_BACKLOG默许为511,以是有需要调剂这个值。对忙碌的办事器,增添该值有助于收集功能
wmem_default

129024

129024

默许的发送窗口巨细(以字节为单元)
rmem_default

129024

129024

默许的吸收窗口巨细(以字节为单元)
rmem_max

129024

873200

最年夜的TCP数据吸收缓冲
wmem_max
129024

873200

最年夜的TCP数据发送缓冲

2、两种修正内核参数***:

1、利用echovalue体例间接追加到文件里如echo"1">/proc/sys/net/ipv4/tcp_syn_retries,但这类***装备重启后又会规复为默许值
2、把参数增加到/etc/sysctl.conf中,然后实行sysctl-p使参数失效,永世失效

3、内核临盆情况优化参数

这儿所列参数是老男孩先生临盆中经常使用的参数:
net.ipv4.tcp_syn_retries=1
net.ipv4.tcp_synack_retries=1
net.ipv4.tcp_keepalive_time=600
net.ipv4.tcp_keepalive_probes=3
net.ipv4.tcp_keepalive_intvl=15
net.ipv4.tcp_retries2=5
net.ipv4.tcp_fin_timeout=2
net.ipv4.tcp_max_tw_buckets=36000
net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_max_orphans=32768
net.ipv4.tcp_syncookies=1
net.ipv4.tcp_max_syn_backlog=16384
net.ipv4.tcp_wmem=819213107216777216
net.ipv4.tcp_rmem=3276813107216777216
net.ipv4.tcp_mem=78643210485761572864
net.ipv4.ip_local_port_range=102465000
net.ipv4.ip_conntrack_max=65536
net.ipv4.netfilter.ip_conntrack_max=65536
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=180
net.core.somaxconn=16384
net.core.netdev_max_backlog=16384
对照网上其别人的临盆情况优化参数,必要优化的参数基础差未几,只是值有响应的变更。详细优化值要参考使用场景,这儿所列只是经常使用优化参数,是不是合适,可在下面检察该参数形貌,了解后,再依据本人临盆情况而设。
别的相干linux内核参数调剂文章:
Linux内核参数优化
http://flandycheng.blog.51cto.com/855176/476769
优化linux的内核参数来进步办事器并发处置才能
http://www.ha97.com/4396.html
nginx做web办事器linux内核参数优化
http://blog.csdn.net/force_eagle/article/details/6725243
本文出自“此心安处是吾乡”博客,请务必保存此出处http://yangrong.blog.51cto.com/6945369/1321594
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!
金色的骷髅 该用户已被删除
沙发
发表于 2015-1-15 21:28:22 | 只看该作者

CentOS教程之linux内核参数正文与优化

清楚了解网络的基础知识,特别是在Linux下应用知识,如接入internet等等。
admin 该用户已被删除
板凳
发表于 2015-1-18 10:34:26 | 只看该作者
为了更好的学习这门课程,我不仅课上认真听讲,课下也努力学习,为此还在自己的电脑上安装了Ubuntu系统。
蒙在股里 该用户已被删除
地板
发表于 2015-1-27 07:39:39 | 只看该作者
其实老师让写心得我也没怎么找资料应付,自己想到什么就写些什么,所以不免有些凌乱;很少提到编程,因为那些在实验报告里已经说了,这里再写就多余了。
兰色精灵 该用户已被删除
5#
发表于 2015-2-5 11:49:46 | 只看该作者
用户下达的命令解释给系统去执行,并将系统传回的信息再次解释给用户,估shell也称为命令解释器,有关命令的学习可参考论坛相关文章,精通英文也是学习Linux的关键。
活着的死人 该用户已被删除
6#
发表于 2015-2-11 20:52:19 | 只看该作者
写学习日记,这是学习历程的见证,同时我坚持认为是增强学习信念的法宝。
小妖女 该用户已被删除
7#
发表于 2015-3-2 20:22:12 | 只看该作者
可以说自己收获很大,基本上完成了老师布置的任务,对于拔高的题目没有去做,因为我了解我的水平,没有时间和精力去做。?
海妖 该用户已被删除
8#
发表于 2015-3-11 07:55:57 | 只看该作者
一定要学好命令,shell是命令语言,命令解释程序及程序设计语言的统称,shell也负责用户和操作系统之间的沟通。
愤怒的大鸟 该用户已被删除
9#
发表于 2015-3-18 06:53:49 | 只看该作者
工具书对于学习者而言是相当重要的。一本错误观念的工具书却会让新手整个误入歧途。目前国内关于Linux的书籍有很多不过精品的不多。
飘灵儿 该用户已被删除
10#
发表于 2015-3-25 20:55:47 | 只看该作者
当然你不需搭建所有服务,可以慢慢来。自己多动手,不要非等着别人帮你解决问题。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-16 06:22

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表