nginx连接数不够造成的Too many open files的问题

本文介绍如何调整Linux系统的ulimit设置以增加可打开文件数限制,并优化Nginx配置以提高并发处理能力。

两个地方需要修改,首先修改linux系统的ulimit

 

1) ulimit (针对当前登录用户的限制,非针对单个进程) CentOS 默认ulimit -n 是1024,打开的文件数,nginx高并发时超过这个数字,就会报错。可以ulimit -n 65536,不过这只是当前session有效,退出登录后又没用了,要永久有效,需要修改/etc/security/limits.conf

* soft nofile 65536 
* hard nofile 65536 

星号代表全局, soft为软件,hard为硬件,nofile为这里指可打开文件数。把以上两行内容加到 limits.conf文件中即可。

另外,要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。

查看 /etc/pam.d/login 文件中有: session required pam_limits.so 修改完重新登录就可以见到效果,可以通过 ulimit -n 查看。

 

2) nginx.conf

默认nginx采用一个worker_processes,一般有几个核,就设定几个worker。机器几个核,可以通过cat /proc/cpuinfo来查看。worker_connections * worker_processes = max client,所以worker_processes 也可以设的大一些,比如10240。

现在一般用作反向代理的时候,max clients = worker_connections * worker_process / 4。 另外还要设定一个worker_rlimit_nofile,这个是用来设定每个worker_process能打开的最大文件数,注意worker_connection不能超过这个数字。

转载于:https://www.cnblogs.com/echovalley/archive/2013/03/15/2960633.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值