最近使用flask来重写之前的一些php项目,但是部署到生产环境上经常出现502,于是乎打算收集下资料进行调优,下面我们来看看具体哪些方面需要进行改进
nginx优化,主要是nginx.conf文件内
user www www;
worker_processes 56; #CPU逻辑个数,根据你的服务器来
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
pid logs/nginx.pid;
worker_rlimit_nofile 65535; #最大打开文件数,这个值要小于等于worker_connections
events {
worker_connections 65535; #最大连接数
multi_accept on;
use epoll;
}接下来我们看看系统调优的地方,主要是syctl.conf
net.core.somaxconn = 2048 #系统队列最大的监听长度 vm.swappiness = 10 #物理内存剩下10%时使用虚拟内存
开辟新的虚拟内存可以参考之前做的swapfile文件的创建和挂载
接下来我们看看uwsgi的优化,我的文件就是uwsgi.ini
workers = 56 # 并发处理进程数 listen = 65535 # 并发的socket连接数,优化需要根据系统配置 processes = 56 #进程数,根据根据逻辑CPU个数修改 threads = 128 #线程数,酌情修改
由于经常遇到而已访问导致的队列堵塞,我们可以在nginx.conf做下适当的限制
limit_req_status 599; #定义被限制的返回码,便于和正常的区分
limit_req_zone $binary_remote_addr zone=allips:2m rate=100r/s; #nginx每秒仅接受100个请求
geo $limited { #设定不受限制的IP
default 1; 182.92.117.23 0;
}上面限速以后还需要处理下等待请求数
location / {
...
limit_req zone=allips burst=60 nodelay; #达到限速后,允许等待的请求数
}内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:https://sulao.cn/post/651
评论列表