Linux内核优化

一、 完整的内核优化配置

net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.ipv4.tcp_max_tw_buckets = 6000
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rmem = 4096        87380   4194304
net.ipv4.tcp_wmem = 4096        16384   4194304
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.netdev_max_backlog = 262144
net.core.somaxconn = 262144
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_fin_timeout = 1
net.ipv4.tcp_keepalive_time = 30
net.ipv4.ip_local_port_range = 1024    65000

二、各参数解释说明

1、内核转发功能

net.ipv4.ip_forward = 0

0表示关闭内核转发,1表示开启内核转发。
在Linux系统中出于系统安全考虑,在默认情况下,Linux系统是禁止数据包转发的。
数据包转发:指的是当主机拥有多个网卡时,通过一个网卡接收到的数据包,根据目的IP地址来转发数据包到其他网
卡。这个功能通常用于路由器。

2、设置数据传输长连接持续时间

net.ipv4.tcp_keepalive_time = 600
Linux系统在连接资源上进行了一些设置管控,在连接长时间(设置的时间)无数据传输时,我们释放连接腾出资源。
同时在长连接未释放阶段又能连接复用避免了新创建连接和三次握手进而提高效率

3、net.ipv4.tcp_fin_timeout

net.ipv4.tcp_fin_timeout = 30
这个参数表示当服务器主动关闭连接时,socket保持在FIN-WAIT-2状态的最大时间(表示从Fin_WAIT_2
到TIME_WAIT的超时时间)。默认是60s。
长时间收不到对端FIN包,大概率是对端机器有问题,不能及时调用close()关闭连接,建议调低,
避免等待时间太长,资源开销过大

4、net.ipv4.tcp_tw_recycle

net.ipv4.tcp_tw_recycle=1
这个参数用于设置启用timewait快速回收,默认为0表示关闭。开启后,TIME_WAIT状态的连接不用等待
2MSL时间就可用于新建连接。一般尤其是对于测试进行压测要开启。

5、net.ipv4.tcp_tw_reuse

net.ipv4.tcp_tw_reuse=1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,
默认为0,表示关闭。一般测试压测都会开启。

6、net.ipv4.ip_local_port_range

net.ipv4.ip_local_port_range = 1024 65000
这个参数定义了在UDP和TCP连接中本地(不包括连接的远端)端口的取值范围

7、tcp_max_tw_buckets

系统TIME_WAIT连接的最大数量,根据实际业务需要调整该参数默认为180000,过多的TIME_WAIT套接
字会使Web服务器变慢,如果超过这个数字会出现如下:
1、多出的TIME_WAIT套接字将立刻被清
2、dmesg会有报错
TCP: time wait bucket table overflow    
TCP: time wait bucket table overflow
TCP: time wait bucket table overflow
TCP: time wait bucket table overflow

TCP: time wait bucket table overflow产生的影响: 
原因是超过了linux系统tw数量的阀值。危害是超过阀值后,系统会把多余的time-wait socket 删除掉,
并且显示警告信息,如果是NAT网络环境又存在大量访问,会产生各种连接不稳定断开的情况。同时高并
发短连接会让服务器在短时间范围产生的大量time_wait,该状态下socket占用大量端口号,最终导致
端口号耗尽,进而客户端访问无法建立新的连接。

8、fs.file-max

fs.file-max = 655350
系统级别所有进程打开总文件数限制,是对整个系统的限制,并不是针对用户的,限制了该系统所有用户
和进程线程所打开的文件数量不能超过这个值。

拓展:
ulimit -n:用来查看当前用户单个进程打开文件数限制。通过修改:/etc/security/limits.conf

9、net.ipv4.tcp_syn_retries

net.ipv4.tcp_syn_retries的设置,表示应用程序进行connect()系统调用时,在对方不返回SYN +
ACK的情况下(也就是超时的情况下),第一次发送之后,内核最多重试几次发送SYN包;并且决定了等待时间。

实例场景:预发环境入口通过域名访问,网页响应十分缓慢,可设置此参数将重试次数改为5次
net.ipv4.tcp_synack_retries = 5
net.ipv4.tcp_syn_retries = 5

10、net.ipv4.ip_local_port_range

net.ipv4.ip_local_port_range = 1024 65535该参数表示与远程服务器建立连接时启用的端口范围。

场景:在高并发情况下,由于端口范围设置太小,每建立起来一个socket连接就会消耗掉一个端口号,
一旦可用随机端口号被耗尽。虚拟机所能建立的连接也就到顶,从而无法建立更多的连接。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,185评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,652评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,524评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,339评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,387评论 6 391
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,287评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,130评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,985评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,420评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,617评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,779评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,477评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,088评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,716评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,857评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,876评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,700评论 2 354

推荐阅读更多精彩内容