`
bugyun
  • 浏览: 558952 次
社区版块
存档分类
最新评论

Nginx: 24: Too Many Open Files 错误和解决方案【转】

 
阅读更多

转自:https://www.cnblogs.com/sxlfybb/archive/2011/09/15/2177983.html

 

在我的nginx配置文件中获取以下错误日志:

2010/04/16 13:24:16 [crit] 21974#0: *3188937 open() "/usr/local/nginx/html/50x.html" failed (24: Too many open files), client: 88.x.y.z, server: example.com, request: "GET /file/images/background.jpg HTTP/1.1", upstream: "http://10.8.4.227:81//file/images/background.jpg", host: "example.com"

 

像 CentOS / RHEL / Fedora Linux or UNIX这样的操作系统碰到这样的问题如何修复?

 

Linux / Unix 设置了软硬文件句柄和打开文件的数目,你可以使用'ulimit'命令来查看这些限制

su - nginx

要看这些值,请使用下面的命令:

ulimit -Hn

ulimit -Sn

 

在Linux系统级别上提高打开文件的限制

nginx服务器可以打开的文件数量受你操作系统的限制,你可以轻松地修复这个问题by setting or increasing system open file limits 。编辑文件/etc/sysctl.conf, 键入:

vi /etc/sysctl.conf

追加或者修改下面的行:

fs.file-max = 70000

保存并关闭文件,编辑 /etc/security/limits.conf, 键入:

vi /etc/security/limits.conf

像下面这样为所有用户或者nginx用户设置软硬限制:

nginx   soft   nofile   10000

nginx   hard  nofile   30000

保存并关闭,最后重新载入sysctl命令,以使以上改变生效:

sysctl -p

nginx worker_rlimit_nofile Option (在nginx级别上提高打开的文件句柄限制)

nginx也有同样的限制,可以通过worker_rlimit_nofile来增加此限制数量。 来设置被nginx进程最大文件打开的数量,编辑nginx.conf文件,键入:

vi /usr/local/nginx/conf/nginx.conf (视你的配置文件的位置而定)

追加或者编辑:

worker_rlimit_nofile   30000;

保存并关闭文件,重新加载nginx配置,并重新执行开始查看软硬限制的命令:

su - nginx

ulimit -Hn

ulimit -Sn

输入示例:

30000

10000

其实在国内的网站是上搜到的内容大都讲的差不多了,原先我也如此,但一直没有解决,最后发现最关键的参数没设置,故一直不能超过1024个active conntions. 通过设置此参数即可解决:

worker_rlimit_nofile   30000;

 

<audio controls="controls" style="display: none;"></audio>

分享到:
评论

相关推荐

    访问应用很慢,访问Nginx时,报错:accept() failed (24 Too many open files).docx

    在本文中,我们将讨论 Nginx 访问慢和 accept() failed 错误的解决方案。这个问题通常是由于 Nginx 的连接数超过了系统设定的最大值造成的。下面是解决这个问题的方法。 一、临时修改 ulimit 值 可以使用 ulimit ...

    nginx fastdfs.docx

    搭建 Nginx 与 FastDFS 的组合,是一种常见的文件存储和分发解决方案。FastDFS 是一个开源的轻量级分布式文件系统,而 Nginx 作为高性能的 Web 服务器和反向代理服务器,两者结合能够提供稳定、高效的文件上传和下载...

    Tengine(Nginx)配置参考

    设置后你的操作系统和Nginx可以处理比“ulimit -a”更多的文件,所以把这个值设高,这样nginx就不会有“too many open files”问题了。 worker_rlimit_nofile 100000; #全局错误日志及PID文件 #error_log logs/...

    高性能服务器集群的架设及优化笔记.docx

    * 解决服务端 too many open files 问题:使用 ulimit -n 30000 选项,解决服务端 too many open files 问题。 服务器集群架设是高性能网站的关键技术。通过服务器集群架设、优化和 troubleshoot,可以提高网站的...

    Nginx性能配置[参照].pdf

    提高这个值可以允许Nginx处理更多的并发连接,避免“too many open files”的错误。 3. **events模块**: - **worker_connections**:设置每个工作进程的最大并发连接数,不应超过系统允许的最大socket连接数。 -...

    解析服务器常见错误代码500、501、502、503、504、505

    - 系统资源限制,如打开文件过多(too many open files),导致服务器无法处理更多的请求。 解决500错误的一般思路包括: - 查看nginx、php的错误日志文件来找出问题所在。 - 如果是脚本问题,则修复脚本错误,优化...

    一些优化Nginx服务器的技巧简介

    增加此值可以防止在高负载下出现too many open files的错误,但同样需要注意操作系统的限制。 ### 总结 在优化Nginx服务器的过程中,应根据实际应用场景和服务器硬件资源进行合理配置。上述配置中,HTTP模块和...

    Nginx服务器配置性能优化方案

    `worker_rlimit_nofile`设定每个工作进程的最大文件描述符数量,提高并发能力,避免“too many open files”的问题。确保其值大于操作系统默认限制。 其次,`events`模块是连接处理的核心。`worker_connections`...

    Nginx配置优化详解

    `worker_rlimit_nofile`设定每个工作进程可打开的最大文件数,提高这个值可以避免“too many open files”的问题。 接下来是`events`模块,这是处理客户端连接的核心。`worker_connections`定义了一个工作进程可...

    服务器集群及优化笔记

    3. 分析性能瓶颈,例如ab测试中可能出现的"too many open files"错误,可以通过调整ulimit增加文件描述符限制。 4. 调整Nginx配置,如设置keepalive_timeout为0,避免在高并发下过多占用TCP连接。 5. 观察服务器打开...

    如何对AIX、ORACLE、WebLogic和WebSphere进行调优

    大并发时后台报too many open files - 这个问题是由于系统打开文件数量限制导致的。 - 可以通过调整操作系统的文件描述符限制来解决,例如使用`ulimit -n`命令。 ##### 3. 修改`/ehr/weblogic11/user_projects/...

    Python Web框架Tornado运行和部署

    注意,为了防止"Too many open files"错误,可能需要增加每个进程允许的最大文件句柄数。 2. **进程和端口**: 由于Python的全局解释器锁(GIL),为了充分利用多核CPU,通常需要运行多个Python进程。Tornado提供...

Global site tag (gtag.js) - Google Analytics