记nginx一次优化

对网站进行ab测试时测试参数如下

 ./ab -c 1000 -n 10000 http://www.snwechat.com/index.html

一下是两次测试的性能截图

 ab结果发现了大量的失败,多次测试发现QPS基本在3800左右之间

error.log中发现大量的错误,如下

2018/11/06 15:14:43 [error] 1441#0: *791279 connect() to unix:/tmp/php-54-cgi.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: 39.105.9.102, server: www.snwechat.com, request: "GET /index.html HTTP/1.0", upstream: "fastcgi://unix:/tmp/php-54-cgi.sock:", host: "www.snwechat.com"

网上翻阅资料发现,应该是socket等待连接数比较小,导致有大量请求来的时候部分请求被拒绝了,也就是说当大量请求到来是,服务器内核的中得配置比较小,队列就很容易满了,这个时候来连接,服务器会拒绝掉连接,客户端重试,如果下次在连接的时候还是.......客户段就会出现超时了,也就是ab中看到的错误请求数了。

参考文章:https://blog.csdn.net/haoluojie/article/details/76070191

 

1、修改系统的somaxnum (默认应该为128,请注意使用cp进行备份)

#在/etc/sysctl.conf中添加如下

net.core.somaxconn = 2048 

#然后在终端中执行

sysctl -p

#确认是否修改成功

echo /proc/sys/net/core/somaxconn

 

 

2、修改PHP-FPM配置文件(请注意备份,修改完记得重启 php-fpm restart)

listen.backlog = 2048

 

3、修改nginx的配置

  

listen       80 default backlog=2048; #80端口增加 default backlog=2048

 

 

重启之前先通过 ./nginx -t 进行语法检测

 

posted @ 2018-11-06 16:26  小a、  阅读(251)  评论(0编辑  收藏  举报