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计 ...
随机推荐
- get、post请求方式在jmeter中使用步骤
jmeter:性能测试工具,压测 一.jmeter工具测试接口时使用步骤: 1.测试计划右键--添加--Threads(Users)--线程组(线程数就是并发数) 2.线程组右键--Sampler-- ...
- css常用属性之绝对定位、相对定位、滚动条属性、背景图属性、字体、鼠标、超链接跳转页面
1.绝对定位position: fixed(比如广告页面向下滑动的时候,页面最上方有个标题不能随之滑动,就需要用到position: fixed,同时还需要用到一个标签(标签高度很高才会出现滚动的情况 ...
- python代码开发规范
https://github.com/libo-sober/LearnPython/tree/master/day18 为什么要有模块? 拿来主义,提高开发效率. 便于管理维护. 什么是脚本呢? 脚本 ...
- Linux实战(15):Centos 防火墙常见端口命令
开启命令 firewall-cmd --zone=public --add-port=80/tcp --permanent 关闭命令 firewall-cmd --zone=public --remo ...
- java面试题2-自己整合的
1.HashMap的底层实现原理 HashMap是数组+链表组成的实现了Map.Cloneable.Serializable接口,继承了AbstractMap类 HashMap是否线程安全? Hash ...
- kafka学习(四)kafka安装与命令行调用
文章更新时间:2020/06/07 一.安装JDK 过程就不过多介绍了... 二.安装Zookeeper 安装过程可以参考此处~ 三.安装并配置kafka Kafka下载地址 http://kafk ...
- 有关Kafka的那些事
Kafka基本概念 Producer: 消息和数据的生产者,向kafka的一个topic发布消息的进程.代码.服务. Consumer:消息和数据的消费者,订阅数据并且处理器发布的消息的进程.代码.服 ...
- PHP正则表达式核心技术完全详解 第2节
作者:极客小俊 一个专注于web技术的80后 我不用拼过聪明人,我只需要拼过那些懒人 我就一定会超越大部分人! CSDN@极客小俊,原创文章, B站技术分享 B站视频 : Bilibili.com 个 ...
- Android控件Gridivew列数行间距设定
常用属性 列数 android:numColumns="3" 行间距 android:verticalSpacing="8dp"
- (转载)什么是B+树?
本文转载自网络. 如有侵权,请联系处理!