linux accept 队列,AcceptQueue队列长度优化

检查方法:ss-lnt|grep${listeningport},第三列(Send-Q)即是对应监听端口的acceptqueue的队列长度.

设置方法:依赖两个配置,Linux内核会取他们的较小值最为最终的acceptqueue队列长度

a)Linux内核参数net.core.somaxconn

b)应用层面配置的backlog长度,该配置方法根据应用程序的不同而各有差异

PS.关于acceptqueue队列长度具体应该设置多少,需要根据不同的业务形态差异化的定制,以下值供参考:

a)Linux内核net.core.somaxconn设置的值为128

b)Nginx缺省的backlog为511

应用配置

nginx配置文件:/usr/local/nginx/conf/nginx.conf

server {

listen 80 backlog=8191;

server_name localhost;

系统配置:

net.ipv4.tcp_max_syn_backlog=8192

net.core.somaxconn=8192

date;netstat -s |grep -iE 'overflow|backlog|drop'

关于参数调整和布置监控accept的脚本,如下:

1. 参数调整

1)sysctl -a | grep somaxconn

echo "net.core.somaxconn = 4096" >> /etc/sysctl.conf

sysctl -p

2) 调整应用backlog (tomcat)

全局

server.xml

设置acceptCount="4096"

如果有application级别的

application.properties

设置server.tomcat.accept-count=4096

重启应用,敲ss -tanl | grep 81验证,第三列变成4096说明生效。

2. 验证大并发时TCP accept queue有没有丢包的shell。

在一台机器中,将如下shell的输出周期性的重定向到一个输出文件,可用crontab每隔2秒执行一次。

echo "=====================";date; ss -tanl | grep 81; netstat -st | egrep -i "drop|reject|overflowed|listen|filter"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值