容器内TCP并发连接数参数解释
要点:
默认sysctl_tcp_syncookies =1,所以net.ipv4.tcp_max_syn_backlog参数无需修改。
net.core.somaxconn的效果只跟容器内的设置有关,与系统全局设置无关。
tcp_abort_on_overflow是全局的,应保持tcp_abort_on_overflow=0不变
所有net参数在系统或容器初始化阶段都会设为固定的默认值,只能在系统运行时修改。
容器中的参数修改方法与创建容器的工具相关,请自行查找方案和验证。
操作系统内核的不同版本会调整sysctl的参数是属于namespace独立的还是系统全局的,但不是用户可以控制的。
鉴于以上几点,只需要设置容器的net.core.somaxconn大于应用最多同时发起的tcp连接数。
net.ipv4.tcp_max_syn_backlog
#这个参数表示TCP三次握手建立阶段接受SYN请求列队的较大长度,默认1024,将其设置的大一些可使出现服务器程序繁忙来不及accept新连接时,可以容纳更多等待连接的网络连接数,Linux不至于丢失客户端发起的链接请求。这个参数只有syncookies=0的时候生效(参见以下代码)。系统中syncookies=1,所以此net.ipv4.tcp_max_syn_backlog参数无需修改。
此参数在12sp3的中属于系统全局参数,在12sp5中属于net_namespace参数。内核源代码net/ipv4/sysctl_net_ipv4.c中的ipv4_table[]中为全局参数,ipv4_net_table[]中为net