nginx的事件处理worker_processes/worker_connections/worker_rlimit_nofile解释,查看cpu数量

69 篇文章 3 订阅
13 篇文章 0 订阅

Nginx事件处理模型

demo

events {

	use epoll;
	
	worker_connections 65535;
	
	multi_accept on;

}
  • worker_connections 下面有介紹
  • multi_accept
    告诉nginx收到一个新连·接通知后接受尽可能多的连接,默认是on,设置为on后,多个worker按串行方式来处理连接,也就是一个连接只有一个worker被唤醒,其他的处于休眠状态,设置为off后,多个worker按并行方式来处理连接,也就是一个连接会唤醒所有的worker,直到连接分配完毕,没有取得连接的继续休眠。当你的服务器连接数不多时,开启这个参数会让负载有一定的降低,但是当服务器的吞吐量很大时,为了效率,可以关闭这个参数。

开启高效传输模式

http {

	include mime.types;
	
	default_type application/octet-stream;
	
	……
	
	sendfile on;
	
	tcp_nopush on;
	
	……

}
  • Include mime.types : 媒体类型,include 只是一个在当前文件中包含另一个文件内容的指令。
  • default_type application/octet-stream :默认媒体类型足够。
  • sendfile on开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
  • tcp_nopush on:必须在sendfile开启模式才有效,防止网路阻塞,积极的减少网络报文段的数量(将响应头和正文的开始部分一起发送,而不一个接一个的发送。)

worker_processes

在这里插入图片描述

worker_processes指令控制工作进程数:

worker_processes 1;
其默认值为1,这意味着NGINX只运行一个worker。 该值应根据可用内核数,磁盘,网络子系统,服务器负载等更改为最佳值。
一般设置为可用的(cpu)核心数。

或者,可以将其设置为auto。 这样nginx会自动根据核心数为生成对应数量的worker进程。

查看cpu数

lscpu

在这里插入图片描述

cat /proc/cpuinfo | grep 'processor' | wc -l

在这里插入图片描述

worker_connections

默认值为512.该指令设置单个worker进程最大打开的连接数
在这里插入图片描述

worker_rlimit_nofile

同时连接的数量受限于系统上可用的文件描述符的数量,因为每个套接字将打开一个文件描述符。 如果NGINX尝试打开比可用文件描述符更多的套接字,会发现error.log中出现Too many opened files的信息。

检查文件描述符(文件句柄数)

ulimit -a

在这里插入图片描述

文件资源限制的配置可以在/etc/security/limits.conf设置,针对root/user等各个用户或者*代表所有用户来设置。

在这里插入图片描述

*   soft nofile   65535

*   hard nofile   65535

用户重新登录生效(ulimit -n

nginx的worker_rlimit_nofile

现在,将此值增加到大于worker_processes * worker_connections的值。 应该是增加当前worker运行用户的最大文件打开数值

NGINX提供了worker_rlimit_nofile指令,这是除了ulimit的一种设置可用的描述符的方式。 该指令与使用ulimit对用户的设置是同样的效果。此指令的值将覆盖ulimit的值,如:

worker_rlimit_nofile 65535;

在这里插入图片描述

参考了大佬的博客
https://www.cnblogs.com/sherman125/p/8081095.html
https://www.jianshu.com/p/3217f651d8a4

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值