架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3248|回复: 4

【实战】Nginx HTTP 请求并发调优

[复制链接]
发表于 2022-1-16 13:46:40 | 显示全部楼层 |阅读模式
网站程序是 asp.net core 开发的,浏览器请求一个页面,服务器需要经过 nginx 反向代理到 .net 程序处理,在压测的时候,会报 503 错误:

503 Service Temporarily Unavailable

503是一种HTTP状态码,由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复。

一般来说,出现503错误多半是因为网站访问量大,造成了流量超限或者并发数大引起的资源超限出现的错误。

根据木桶原理分析,性能的瓶颈有多方面的因素,首先 Linux 调优参考如下:

Linux(CentOS)之 ulimits 服务器性能调优
https://www.itsvse.com/thread-10134-1-1.html

通过专业的压测工具,压测结果如下:

.NET/C# 负载测试 NBomber 简单使用教程
https://www.itsvse.com/thread-9993-1-1.html

QQ截图20220116133028.jpg

Nginx 调优

worker_processes 设置成自动,如下:

让 nginx 根据需求自动调整。

events 设置如下:

使用epoll模式,增加并发连接数,增加nginx系统并发连接能力,同时,设置工作进程可以同时打开的最大连接数。文档介绍:http://nginx.org/en/docs/events.html

调优后,再进行压测,没有再出现 503 错误了,如下图:

QQ截图20220116133336.jpg
如果使用 nginx 反向代理转发到 php-fpm,还有可能报错如下:

2022/01/16 16:08:01 [crit] 968#0: *12955 open() "/alidata/www/itsvse_web/50x.html" failed (24: Too many open files), client: 100.116.153.2, server: www.itsvse.com, request: "GET /forum.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.itsvse.com"
2022/01/16 16:08:01 [alert] 968#0: *12956 socket() failed (24: Too many open files) while connecting to upstream, client: 100.116.153.109, server: www.itsvse.com, request: "GET /forum.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.itsvse.com"
2022/01/16 16:08:01 [crit] 968#0: *12956 open() "/alidata/www/itsvse_web/50x.html" failed (24: Too many open files), client: 100.116.153.109, server: www.itsvse.com, request: "GET /forum.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.itsvse.com"

QQ截图20220116162555.jpg

设置 worker_rlimit_nofile 参数,如下:



文档:http://nginx.org/en/docs/ngx_core_module.html#worker_rlimit_nofile

(完)





上一篇:【转】Ubuntu、CentOS、RedHat 的区别与联系
下一篇:OceanBase 数据库管理工具下载
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2022-1-16 21:02:14 | 显示全部楼层
又来学习学习
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2022-1-24 11:18:47 | 显示全部楼层
学习到了,感谢感谢
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2023-3-30 10:01:36 | 显示全部楼层
Nginx:413 Request Entity Too Large
https://www.itsvse.com/thread-10545-1-1.html
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2023-3-30 10:01:45 | 显示全部楼层
【实战】Nginx 添加启用 HTTP/2 协议
https://www.itsvse.com/thread-10307-1-1.html
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-6-1 12:05

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表