主页 > 服务器技术 > Nginx: Too Many Open Files 错误和解决方案

Nginx: Too Many Open Files 错误和解决方案

PDF版本

Nginx 的服务器使用越来越普遍,主要因为他的性能大大优于Apache2。但在使用过程中往往遇到一些问题,下面这个就是其中之一:

24: Too many open files

详细错误代码如下:

2011/05/01 23:00:49 [alert] 7387#0: *6259768 socket() failed (24: Too many open files) while connecting to upstream


次错误容易让人摸不着头绪,不知道是哪里出了问题,配置检查过没问题。程序代码的错误也不应该是这个错误信息啊。
其原因是Linux / Unix 设置了软硬文件句柄和打开文件的数目,解决方法如下:
简单修改方法:
使用如下命令可以把打开文件数设置足够大

ulimit -n 30000

同时修改nginx.conf添加

worker_rlimit_nofile 30000;

这样就可以解决Nginx连接过多的问题,Nginx就可以支持高并发。
注意: 用ulimit -n 30000 修改只对当前的shell有效,退出后失效。

感觉还是通过下面的房改修改比较稳定
一、通过修改硬件配置来实现更改
你可以使用’ulimit’命令来查看系统文件限制。

ulimit -Hn
ulimit -Sn

在nginx服务器可以打开的文件数量受你操作系统的限制,编辑/etc/sysctl.conf 添加如下内容:

fs.file-max = 70000

保存退出,从新读取系统配置

sysctl -p

再编辑 /etc/security/limits.conf 添加内容:

* soft nofile 10000
* hard nofile 30000

此修改内容需要reboot系统才能生效,所以务必从新启动下服务器。
二、修改Nginx系统的文件限制,使用nginx worker_rlimit_nofile Option
打开你相应的配置文件位置,我用的ubutnu12.04 所以路径如下

vim /etc/nginx/nginx.conf

添加内容

# set open fd limit to 30000
 worker_rlimit_nofile 30000;

保存退出从新读取nginx配置

sudo service nginx reload

再次查看系统输出

ulimit -Hn
ulimit -Sn

结果如下:

30000
10000

到此结束。希望对大家有用.


声明: 本站所有文章欢迎转载,所有文章未说明,均属于原创,转载均请注明出处。
本文有效链接: http://www.drupal001.com/2013/07/nginx-open-files-error/
版权所有: Drupal与高性能网站架构 http://www.drupal001.com


发表评论

电子邮件地址不会被公开。 必填项已用 * 标注


4 + 五 =

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

引用:0

下面所列的是引用到本博客的链接
Nginx: Too Many Open Files 错误和解决方案 来自 Drupal与高性能网站架构
顶部