“高并发情况下Linux服务器内核配置”的版本间的差异

来自Alex's wiki
跳转至: 导航搜索
(创建页面,内容为“<pre> modprobe ip_tables modprobe iptable_filter modprobe ip_conntrack hashsize=262144 modprobe ip_conntrack_ftp modprobe ipt_state modprobe iptable_nat modprobe ip_...”)
 
以下是《Nginx高性能Web服务器详解》中的建议配置(P67):
 
(未显示3个用户的27个中间版本)
第1行: 第1行:
<pre>
+
 
 +
==风行的配置:==
 +
<source lang=bash>
 
modprobe ip_tables
 
modprobe ip_tables
 
modprobe iptable_filter
 
modprobe iptable_filter
第10行: 第12行:
 
modprobe ipt_LOG
 
modprobe ipt_LOG
 
modprobe ipt_REJECT
 
modprobe ipt_REJECT
 +
 +
echo 262144 > /proc/sys/net/core/netdev_max_backlog
  
 
echo 1048576 > /proc/sys/net/core/somaxconn
 
echo 1048576 > /proc/sys/net/core/somaxconn
第22行: 第26行:
 
echo 131072 > /proc/sys/fs/file-max
 
echo 131072 > /proc/sys/fs/file-max
 
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
 
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
+
echo 0 > /proc/sys/net/ipv4/tcp_tw_recycle
 
echo 262144 > /proc/sys/net/ipv4/tcp_max_orphans
 
echo 262144 > /proc/sys/net/ipv4/tcp_max_orphans
 
echo 262144 > /proc/sys/net/ipv4/tcp_max_syn_backlog
 
echo 262144 > /proc/sys/net/ipv4/tcp_max_syn_backlog
第35行: 第39行:
 
echo 0 > /proc/sys/net/ipv4/tcp_retrans_collapse
 
echo 0 > /proc/sys/net/ipv4/tcp_retrans_collapse
 
echo 0 >/proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_loose
 
echo 0 >/proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_loose
</pre>
+
</source >
 +
 
 +
相应的配置文件在 '''/etc/sysctl.conf'''<br />
 +
使用 <font style="background:lightgray">#/sbin/sysctl -p</font> 命令使修改生效<br />
 +
==以下是《Nginx高性能Web服务器详解》中的建议配置(P67):==
 +
<nowiki>
 +
#添加:
 +
net.core.netdev_max_backlog = 262144
 +
net.core.somaxconn = 262144
 +
net.ipv4.tcp_max_orphans = 262144
 +
net.ipv4.tcp_timestamps = 0
 +
net.ipv4.tcp_synack_retries = 1
 +
net.ipv4.tcp_syn_retries = 1
 +
#修改
 +
net.ipv4.tcp_max_syn_backlog = 262144
 +
 
 +
</nowiki>
 +
另可以加以下配置(参考下一节的说明):
 +
<nowiki>
 +
net.ipv4.tcp_timestamps = 1
 +
net.ipv4.tcp_tw_reuse = 1
 +
</nowiki>
 +
 
 +
==以下是[http://blog.csdn.net/hhy_huang/article/details/7386516?locationNum=4&fps=1 压力测试(实例)]这篇文章中的配置:==
 +
修改系统内核,增加系统允许的最大访问次数,最大程度发挥TT的效率,这里可以贴出E的参考方案,在50000次并发以上效果明显。<br />
 +
[http://www.cnblogs.com/lulu/p/4149312.html tcp_tw_reuse、tcp_tw_recycle 使用场景及注意事项] | [http://blog.csdn.net/bytxl/article/details/46437363 linux 内核TCP 相关参数解释] | [http://blog.csdn.net/lcx46/article/details/12418873  Linux和windows下内核socket优化项]<br />
 +
[http://www.net-add.com/a/xitongyouhua/linuxxitong/2017/0408/22.html 弄清TIME_WAIT彻底解决TCP:time wait bucket table overflow]<br />
 +
 
 +
[http://mp.weixin.qq.com/s/ALzAIcpUz0RGw44jXY14mA 基于Nginx实现10万+并发,你应该做的Linux内核优化]
 +
 
 +
注:TCP:time wait bucket table overflow  所在位置:/var/log/messages ,参考[http://blog.csdn.net/a_bang/article/details/64930109 kernel: TCP: time wait bucket table overflow的问题剖析及解决方法]
 +
<nowiki>
 +
#!/bin/sh 
 +
sysctl -w net.ipv4.tcp_tw_reuse=1 
 +
sysctl -w net.ipv4.tcp_tw_recycle=1  #注,这个配置不对,参考:弄清TIME_WAIT彻底解决TCP:time wait bucket table overflow 
 +
sysctl -w net.ipv4.tcp_fin_timeout=10 
 +
sysctl -w net.core.wmem_max=8388608 
 +
sysctl -w net.core.rmem_max=8388608 
 +
</nowiki>

2017年12月15日 (五) 03:28的最后版本

风行的配置:[编辑]

modprobe ip_tables
modprobe iptable_filter
modprobe ip_conntrack hashsize=262144
modprobe ip_conntrack_ftp
modprobe ipt_state
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ipt_MASQUERADE
modprobe ipt_LOG
modprobe ipt_REJECT
 
echo 262144 > /proc/sys/net/core/netdev_max_backlog
 
echo 1048576 > /proc/sys/net/core/somaxconn
echo 524288 > /proc/sys/net/core/wmem_max
echo 65536 > /proc/sys/net/core/wmem_default
echo 524288 > /proc/sys/net/core/rmem_max
echo 65536 > /proc/sys/net/core/rmem_default
echo "8096    16384   32768" >/proc/sys/net/ipv4/tcp_wmem
echo "8096    16384   32768" >/proc/sys/net/ipv4/tcp_rmem
echo 1048576 > /proc/sys/net/ipv4/ip_conntrack_max
echo "1024 64000" > /proc/sys/net/ipv4/ip_local_port_range
echo 131072 > /proc/sys/fs/file-max
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
echo 0 > /proc/sys/net/ipv4/tcp_tw_recycle
echo 262144 > /proc/sys/net/ipv4/tcp_max_orphans
echo 262144 > /proc/sys/net/ipv4/tcp_max_syn_backlog
echo 3 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_time_wait
echo 30 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_syn_recv
echo 524288 > /proc/sys/net/ipv4/tcp_max_tw_buckets
echo 5 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_close_wait
echo 18000 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
echo 1 > /proc/sys/net/ipv4/tcp_syn_retries
echo 3 > /proc/sys/net/ipv4/tcp_synack_retries
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 0 > /proc/sys/net/ipv4/tcp_retrans_collapse
echo 0 >/proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_loose

相应的配置文件在 /etc/sysctl.conf
使用 #/sbin/sysctl -p 命令使修改生效

以下是《Nginx高性能Web服务器详解》中的建议配置(P67):[编辑]

#添加:
net.core.netdev_max_backlog = 262144
net.core.somaxconn = 262144
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
#修改
net.ipv4.tcp_max_syn_backlog = 262144


另可以加以下配置(参考下一节的说明):

net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_tw_reuse = 1

以下是压力测试(实例)这篇文章中的配置:[编辑]

修改系统内核,增加系统允许的最大访问次数,最大程度发挥TT的效率,这里可以贴出E的参考方案,在50000次并发以上效果明显。
tcp_tw_reuse、tcp_tw_recycle 使用场景及注意事项 | linux 内核TCP 相关参数解释 | Linux和windows下内核socket优化项
弄清TIME_WAIT彻底解决TCP:time wait bucket table overflow

基于Nginx实现10万+并发,你应该做的Linux内核优化

注:TCP:time wait bucket table overflow 所在位置:/var/log/messages ,参考kernel: TCP: time wait bucket table overflow的问题剖析及解决方法

#!/bin/sh  
sysctl -w net.ipv4.tcp_tw_reuse=1  
sysctl -w net.ipv4.tcp_tw_recycle=1  #注,这个配置不对,参考:弄清TIME_WAIT彻底解决TCP:time wait bucket table overflow   
sysctl -w net.ipv4.tcp_fin_timeout=10  
sysctl -w net.core.wmem_max=8388608  
sysctl -w net.core.rmem_max=8388608