标签:somaxconn 应用程序 参数 2048 Linux 128 backlog LISTEN
somaxconn
- 该参数应该是决定一个服务能够同时处理多少个网络请求的核心参数.
- 一个程序能够支持多少个访问参数,是有两部分来决定, 第一部分是somaxconn ,第二部分是应用服务器启动时传递过来的backlog参数.比如nginx貌似就传递 511个backlog的参数过来. tomcat默认的参数数量是100个.
- 实际上应用服务器的最终参数是由min(somaxconn,应用服务器的backlog) 的较小的值来决定的
例如:
[root@centos76oracle19c ~]# ss -lnt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 127.0.0.1:6379 *:*
LISTEN 0 128 *:111 *:*
LISTEN 0 128 *:80 *:*
LISTEN 0 128 *:6000 *:*
LISTEN 0 5 192.168.122.1:53 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 128 127.0.0.1:631 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 *:443 *:* :::*
LISTEN 0 128 :::111 :::*
LISTEN 1 100 :::5200 :::*
- 明显可以看到 5200 端口 java访问的数据是 100个 nginx的是 128个
- 查看 somaxcon的参数
[root@centos76oracle19c proc]# cat /proc/sys/net/core/somaxconn
128
修改参数的办法
1. 临时修改 echo 2048 > /proc/sys/net/core/somaxconn
2. 用旧修改 vim /etc/sysctl.conf
添加内容
net.core.somaxconn=2028
然后执行 sysctl -p 使之生效.
实际上可以使用 如下参数来修改 连接的backlog的数目
server:
port: 5200
tomcat:
maxThreads: 1000
acceptCount: 10000
查看结果为:
[root@centos7ver2009 ~]# ss -lnt |grep 5200
LISTEN 0 2048 [::]:5200 [::]:*
- 注意 因为我backlog 是限制到了 2048 所以会这样,如果我讲 2048 扩大十倍结果就会是10000了 因为他要取两者中较少的值.
tcp_max_syn_backlog
- 一般说法里面 socket max connection 的参数值来决定全连接, 也就是可以服务器可以提供服务的链接数目
- tcp_max_syn_backlog 的参数才是决定有多少个连接可以进入等待简历established 长久连接的连接数目
- 与之对应的tomcat 里面也有一个 accept-count 的参数也是来绝对等待连接的数目的.
修改方法类似:
1. 临时修改 echo 2048 > /proc/sys/net/ipv4/tcp_max_syn_backlog
2. 持久修改 vim /etc/sysctl.conf
net.ipv4.tcp_max_syn_backlog=2048
time wait 参数等.
- 改天再总结 书还没看..
标签:somaxconn,应用程序,参数,2048,Linux,128,backlog,LISTEN 来源: https://www.cnblogs.com/jinanxiaolaohu/p/15204054.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。