nginx优化:worker_processes/worker_connections/worker_rlimit_nofile
一,优化nginx的worker进程数
1,worker_processes应设置为多少?
worker_processes 4;
如何设置这个值:
worker_processes默认值是1,一般要设置为cpu的核心数量或核心数量x2
注意:是核心的数量,不是cpu的数量,一颗cpu可能有多个核心
2,如何查看核心的数量:用lscpu命令
[root@blog conf]$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 2
Core(s) per socket: 2
...
CPU(s): 一栏标明是4个core
3,如何查看核心的数量:执行top命令查看
执行top命令后,按1打开cpu的核心列表
[root@blog conf]$ top
top - 18:45:32 up 105 days, 8:41, 3 users, load average: 0.00, 0.00, 0.00
Tasks: 153 total, 1 running, 145 sleeping, 7 stopped, 0 zombie
%Cpu0 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu2 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu3 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 15355.3 total, 838.1 free, 1154.0 used, 13363.1 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 13873.0 avail Mem
...
4,配置worker_processes后的效果
应该有四个worker进程:
我们用ps命令查看:
[root@blog ~]# ps auxfww | grep nginx
root 29616 0.0 0.0 50412 3292 ? Ss Apr24 0:00 nginx: master process /usr/local/openresty/nginx/sbin/nginx
nginx 29617 0.0 0.0 81896 5968 ? S Apr24 0:00 \_ nginx: worker process
nginx 29618 0.0 0.0 81896 5996 ? S Apr24 0:00 \_ nginx: worker process
nginx 29619 0.0 0.0 81896 5968 ? S Apr24 0:00 \_ nginx: worker process
nginx 29620 0.0 0.0 81896 7164 ? S Apr24 0:00 \_ nginx: worker process
说明:可以看到有4个worker process
5, master process与worker process不同,
master process负责绑定端口、调度进程等,不负责业务的处理
而worker process是业务进程,负责业务的处理
说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest
对应的源码可以访问这里获取: https://github.com/liuhongdi/
说明:作者:刘宏缔 邮箱: 371125307@qq.com
二,优化每个worker进程的连接数
1, worker_connections的作用?
worker_connections 20480
worker_connections是每个worker进程允许的最多连接数,
每台nginx 服务器的最大连接数为:worker_processes*worker_connections
例子:
events {
worker_connections 16383;
}
2,如何设置worker_connections的值?
系统的最大打开文件数>= worker_connections*worker_process
3,如何查看系统的最大打开文件数:
[root@blog ~]# ulimit -n
65535
如果worker_process = 4,
则 worker_connections应该小于等于16383
考虑到进程间分配不平衡,可以设置到 20480
说明:ulimit -n给出的系统的用户最大打开文件数可以调整,
参见这一篇:
https://www.cnblogs.com/architectforest/p/12794818.html
三,配置Nginx worker进程最大打开文件数
worker_rlimit_nofile 65535;
这个指令是指一个nginx worker进程打开的最多文件描述符数目,
理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,
因为nginx分配请求未必很均匀,所以最好与ulimit -n的值保持一致
说明:
如果worker_rlimit_nofile的值小于worker_connections的值,会报如下错误:
worker_connections exceed open file resource limit: xxx
例子:
2020/04/26 14:04:40 [warn] 1402#1402: 2048 worker_connections exceed open file resource limit: 1024
四,查看nginx的版本
[root@blog ~]# /usr/local/openresty/nginx/sbin/nginx -v
nginx version: openresty/1.15.8.2
nginx优化:worker_processes/worker_connections/worker_rlimit_nofile的更多相关文章
- Nginx优化指南
大多数的Nginx安装指南告诉你如下基础知识——通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了!而且,在大多数情况下,一个常规安装的nginx对你的网站来说已经能 ...
- Nginx优化防爬虫 限制http请求方法 CDN网页加速 架构优化 监牢模式 控制并发量以及客户端请求速率
Nginx防爬虫优化 Robots协议(也称为爬虫协议,机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可 ...
- nginx的worker_processes优化
nginx的worker_processes参数来源: http://bbs.linuxtone.org/thread-1062-1-1.html分享一:搜索到原作者的话:As a general r ...
- nginx的worker_processes,worker_cpu_affinity及worker_connections
worker_processes:nginx要开启的进程数,一般为cpu的核数 worker_cpu_affinity:为每个进程绑定一个cpu,减少cpu切换的开销 配置示例: worker_pro ...
- 如果nginx 中worker_connections 值设置是1024,worker_processes 值设置是4,按反向代理模式下最大连接数的理论计算公式: 最大连接数 = worker_processes * worker_connections/4
如果nginx 中worker_connections 值设置是1024,worker_processes 值设置是4,按反向代理模式下最大连接数的理论计算公式: 最大连接数 = worker_pro ...
- nginx优化
此文章非原创,出自鸟哥之手~ http://blog.chinaunix.net/uid-25266990-id-2985541.html 改排版改得多,当然红色部分要注意下,用得较多 ------- ...
- (转)nginx优化 实现10万并发访问量
转自http://www.cnblogs.com/pricks/p/3837149.html 一般来说nginx配置文件中对优化比较有作用的为以下几项:worker_processes 8;1 ngi ...
- 2.Nginx优化
[教程主题]:Nginx优化 [课程录制]: 创E [主要内容] Nginx 优化 nginx介绍 Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为"engine ...
- 【转】nginx优化 突破十万并发
一.一般来说nginx 配置文件中对优化比较有作用的为以下几项: 1. worker_processes 8; nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数 (如,2个四核的cpu计 ...
随机推荐
- spring5源码 -- IOC容器设计理念和核心注解的作用
一. spring源码整体脉络介绍及源码编译 二. Spring IOC的源码深入学习 2.1 ioc容器的加载过程(重要) 2.2 bean的生命周期源码深度剖析 2.3 循环依赖总结讲解 2.4 ...
- VSM
好吧,在被这个算法折腾了许多天之后,我终于对它竖起了中指.这几天的经历让我明白了一个道理:对于数学基础不好的人来说,对待图形学最好远观不可亵玩焉:如果坚持硬闯却又碰巧E文不咋地,那受罪程度真叫人生不如 ...
- Python实现加密压缩成RAR或ZIP文件
博主在前两篇博文分别介绍了加密RAR文件的解压https://www.cnblogs.com/kangbazi666/p/13646308.html和加密ZIP文件的解压https://www.cnb ...
- 原生post请求
ajax: function(opt) { opt = opt || {}; opt.method = opt.method.toUpperCase() || 'POST'; opt.url = op ...
- python实例文本进度条
简单的文本进度条代码 解析 引入time库 打印一行作为开始 最后也打印一个结束的标签 定义变量等于10,文本进度条大概的宽度是10 使用for循环来模拟进度,for i in range()能够不断 ...
- (专题一)01 matlab基础
功能区:主页,绘图,应用程序 当前文件夹工具栏 命令行窗口:输入命令,按下回车键,会在后面显示执行后的命令 如果命令行很长可以分两行来写,用“...”做续行符 建立当前文件夹:可以用cd命令 例如在d ...
- maximo----对比竞品的优势,以及sp的优势
众多资产密集型企业对eam产品关注度都很高,尤其是eam产品的功能差别,这与行业差别有直接关系,如电力行业.煤炭行业或石油行业等,各行有各行的运营特点,那么eam产品在共性的基础上定出存在细小差异.下 ...
- NuxtJS快速入门
服务器端渲染(SSR) 知识储备 ES6 Nodejs Vue React Angular 什么是服务器端渲染 前端渲染:html页面作为静态文件存在,前端请求时后端不对该文件做任何内容上的修改,直接 ...
- [De1CTF 2019]Giftbox 分析&&TPOP学习
[De1CTF 2019]Giftbox 刚进来我以为是直接给了shell,恐怖如斯. 随便扔了个命令,之后就没然后了,hhh,截包发现可能存在sql注入. 然后我就不会了... what i lea ...
- Tomcat 中 catalina.out、catalina.log、localhost.log 和 access_log 的区别
打开 Tomcat 安装目录中的 log 文件夹,我们可以看到很多日志文件,这篇文章就来介绍下这些日记文件的具体区别. catalina.out 日志 catalina.out 日志文件是 Tomca ...