免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 732 | 回复: 0
打印 上一主题 下一主题

[系统管理] 优化Linux内核参数 [复制链接]

求职 : Linux运维
论坛徽章:
203
拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:092015小元宵徽章
日期:2015-03-06 15:58:182015年亚洲杯之约旦
日期:2015-04-05 20:08:292015年亚洲杯之澳大利亚
日期:2015-04-09 09:25:552015年亚洲杯之约旦
日期:2015-04-10 17:34:102015年亚洲杯之巴勒斯坦
日期:2015-04-10 17:35:342015年亚洲杯之日本
日期:2015-04-16 16:28:552015年亚洲杯纪念徽章
日期:2015-04-27 23:29:17操作系统版块每日发帖之星
日期:2015-06-06 22:20:00操作系统版块每日发帖之星
日期:2015-06-09 22:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-02-01 15:16 |只看该作者 |倒序浏览
优化Linux内核参数

内核参数是用户和系统内核之间交互的一个接口,通过这个接口,用户可以在系统运行的同时动态更新内核配置,而这些内核参数是通过Linux Proc文件系统存在的。因此,可以通过调整Proc文件系统达到优化Linux性能的目的。

以下参数是官方给出的一个配置:

net.ipv4.ip_local_port_range = 1024 65536  
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.ipv4.tcp_rmem=4096 87380 16777216  
net.ipv4.tcp_wmem=4096 65536 16777216  
net.ipv4.tcp_fin_timeout = 30
net.core.netdev_max_backlog = 30000
net.ipv4.tcp_no_metrics_save=1
net.core.somaxconn = 262144
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
上面每个参数的含义如下:

net.ipv4.ip_local_port_range:用来指定外部连接的端口范围,默认是32 768到61 000,这里设置为1024到65 536。

net.core.rmem_max:指定接收套接字缓冲区大小的最大值,单位是字节。

net.core.wmem_max:指定发送套接字缓冲区大小的最大值,单位是字节。

net.ipv4.tcp_rmem:此参数与net.ipv4.tcp_wmem都是用来优化TCP接收/发送缓冲区的,包含3个整数值,分别是min、default、max。

对于tcp_rmem,min表示为TCP socket预留的用于接收缓存的最小内存数量,default表示为TCP socket预留的用于接收缓存的默认的内存值,max表示用于TCP socket接收缓存的内存最大值。

对于tcp_wmem,min表示为TCP socket预留的用于发送缓存的内存最小值,default表示为TCP socket预留的用于发送缓存的默认的内存值,max表示用于TCP socket发送缓存的内存最大值。

net.ipv4.tcp_fin_timeout:此参数用于减少处于FIN-WAIT-2连接状态的时间,使系统可以处理更多的连接。此参数值为整数,单位为秒。

例如,在一个tcp会话过程中,在会话结束时,A首先向B发送一个fin包,在获得B的ack确认包后,A就进入FIN-WAIT-2状态等待B的fin包,然后给B发ack确认包。net.ipv4.tcp_fin_timeout参数用来设置A进入FIN-WAIT-2状态等待对方fin包的超时时间。如果时间到了仍未收到对方的fin包就主动释放该会话。

net.core.netdev_max_backlog:该参数表示当在每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许发送到队列的数据包的最大数量。

net.ipv4.tcp_syncookie:表示是否打开SYN Cookie。tcp_syncookies是一个开关,该参数的功能有助于保护服务器免受SyncFlood攻击。默认值为0,这里设置为1。

net.ipv4.tcp_max_orphans:表示系统中最多有多少TCP套接字不被关联到任何一个用户文件句柄上。如果超过这里设置的数字,连接就会复位并输出警告信息。这个限制仅仅是为了防止简单的DoS攻击。此值不能太小。这里设置为262 144。

net.ipv4.tcp_max_syn_backlog:表示SYN队列的长度,预设为1024,这里设置队列长度为262 144,以容纳更多的等待连接。

net.ipv4.tcp_synack_retries:这个参数用于设置内核放弃连接之前发送SYN+ACK包的数量。

net.ipv4.tcp_syn_retries:此参数表示在内核放弃建立连接之前发送SYN包的数量。

将以上内容添加到/etc/sysctl.conf文件中,然后执行如下命令,使设置生效。

[root@varnish-server ~]#sysctl  -p
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP