LINUX内核参数的调整

优化Linux核心参数
 
编辑/etc/sysctl.conf 在底部增加以下内容:
 
net.ipv4.tcp_keepalive_time = 300
 
#表示当Keepalive起用的时候,TCP发送keepalive消息的频繁度。预设值是2小时,这里我改为5分钟。
 
net.ipv4.tcp_tw_reuse = 1
 
#表示开启重用。允許將TIME-WAIT sockets重新用於新的TCP連接,預設为0,表示开关,我將它开啟。
 
net.ipv4.tcp_tw_recycle = 1
 
#表示开启TCP連接中TIME-WAIT sockets的快速回收,预设为0,表示开关,我将它开启。
 
net.ipv4.tcp_max_tw_buckets = 5000
 
#表示系統同时保持TIME_WAIT套接字的最大属性,如果超过这个数字,TIME_WAIT套接字將立刻被清除並印出警告訊息。预设是180000,改为5000。
 
之后记得执行 /sbin/sysctl -p 使配置生效。
 
以下配置是官网上提供:(官网上说,这个配置可以支持4000-8000 req/s的压力.)
 
net.ipv4.ip_local_port_range = 1024 65536
 
#表示用來向外连接的端口范围。预设情况下很小:32768到61000,我将它改为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 = 3
 
#表示如果套接字由本端要求开放,这个参数决定了它保持在FIN-WAIT-2状态的时间。
 
net.core.netdev_max_backlog = 30000。
 
net.ipv4.tcp_no_metrics_save=1
 
net.core.somaxconn = 262144
 
net.ipv4.tcp_syncookies = 0
 
#表示开启SYN Cookies。当出现SYN等待对列溢出时,启用cookies來处理,可防范少量SYN攻击,预设为0。
 
net.ipv4.tcp_max_orphans = 262144
 
net.ipv4.tcp_max_syn_backlog = 262144
 
#表示SYN队列的长度,预设为1024,加大队列长度为262144,可容纳更多等待连接的网路连接数。
 
net.ipv4.tcp_synack_retries = 2
 
net.ipv4.tcp_syn_retries = 2
 
系统环境优化
 
    ulimit -HSn 131072
 
    ulimit -HSc unlimited




==========================================================================
Edit /etc/sysctl.conf


These are numbers from a highly loaded varnishe serving about 4000-8000 req/s


(details: http://projects.linpro.no/pipermail/varnish-misc/2008-April/001769.html)


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 = 3
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.core.netdev_max_backlog = 30000
net.ipv4.tcp_no_metrics_save=1
net.core.somaxconn = 262144
net.ipv4.tcp_syncookies = 0
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




==============================================================================




通过调整Linux TCP参数 提示服务器性能


  用netstat -ant|grep TIME_WAIT|wc -l查看发现有700多的等待请求,原来是TCP/IP 栈引起的。


  对于多数人来说,配置 TCP/IP 栈是邪恶的魔术,但是如果您运行高负载的 Web 服务器,那么有选择地更改 Red Hat 的一些缺省值能明显提高系统响应速度。TCP/IP 配置值被存储在 /proc/sys/net/ipv4 目录中,通常可以是某个值或用“0”(关)和“1”(开)来分别表示禁用和启用。linux缺省值如下:


  tcp_fin_timeout 180


  tcp_keepalive_time 7200


  tcp_window_scaling 1


  tcp_sack 1


  tcp_timestamps 1


  在下面的设置中,更改某些值能增加服务器可处理的 TCP/IP 连接的数量,缩短服务器在终止失效连接前的等待时间,禁用一些不必要的 IP 扩展。把这些设置添加到 /etc/sysctl.conf 文件,然后重新启动网络守护程序( /etc/rc.d/init.d/network restart )。


  # Decrease the time default value for tcp_fin_timeout connection


  net.ipv4.tcp_fin_timeout = 30


  # Decrease the time default value for tcp_keepalive_time connection


  net.ipv4.tcp_keepalive_time = 1800


  # Turn off tcp_window_scaling


  net.ipv4.tcp_window_scaling = 0


  # Turn off the tcp_sack


  net.ipv4.tcp_sack = 0


  #Turn off tcp_timestamps


  net.ipv4.tcp_timestamps = 0
    
    # Set Time_Wait time
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_tw_recycle = 1
    


  加到/etc/rc.local


  代码:


  echo "30">/proc/sys/net/ipv4/tcp_fin_timeout


  echo "1800">/proc/sys/net/ipv4/tcp_keepalive_time


  echo "0">/proc/sys/net/ipv4/tcp_window_scaling


  echo "0">/proc/sys/net/ipv4/tcp_sack


  echo "0">/proc/sys/net/ipv4/tcp_timestamps
    


  通过以上修改,TIME_WAIT明显减少!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值