nginx的最大连接数引发的一点联想

先说说这篇笔记的前因后果,今天在看nginx的worker_connections配置时,提到操作系统的最大啊文件句柄数,所以就查了一下ulimit这个命令的使用方法。

nginx的最大连接数引发的一点联想_第1张图片

首先,咱们先说说worker_connections这个配置的含义。这个配置项是在events模块中进行配置,主要用来设置允许每一个worker process 同时开启的最大连接数。其语法结构如下:

worker_connections number; 

此指令的默认设置为512;这里的number不仅仅包括和前端用户建立的连接数,而是包括所有可能的连接数。另外number的值不能大于操作系统支持打开的最大文件句柄数。

上面标红的地方就是引出本文的缘由----》ulimit 的使用方法

ulimit命令用于控制shell程序的资源

命令 说明
-a 显示目前资源限制的设定
-c 设定core文件的最大值,单位为区块
-f shell所能建立的最大文件,单位为区块
-d 程序数据节区的最大值,单位为KB
-H 设定资源的硬性限制,也就是管理员所设下的限制
-m 指定可使用内存的上限,单位为KB
-n 指定同一时间最多可开启的文件数
-p 指定管道缓冲区的大小,单位是512字节
-s 指定堆叠的上限,单位为KB
-S 设定资源的弹性限制
-t

指定cpu使用时间的上限,单位为秒

-u 用户最多可开启的程序数目
-v 指定可使用的虚拟内存上限,单位为KB

其中-n就是操作系统支持打开的最大文件句柄数,我们可以看一下我的系统支持的最大文件句柄数。

  那么如何修改这个数字呢,我们可以打开文件/etc/security/limits.conf进行配置。例如:

nginx的最大连接数引发的一点联想_第2张图片

当打开的文件数介于1~soft设定的值,能够正常访问;如果打开的文件句柄数介于soft~hard之间,可以访问但是会有警告;如果打开的文件句柄数大于hard这个数字时,会出现报错。

为了让修改的配置文件生效,需要重启系统:shutdown -r now。然后再执行ulimit -n时,支持的最大打开文件句柄数就会发生了变化。

如果想查看更多,更关注公众号:我要一幕天

你可能感兴趣的:(linux)