2022-12-26 13:27阅读: 86评论: 0推荐: 0

Nginx Too many open files;limite

报错日志

2019/07/25 08:31:31 [crit] 15929#15929: accept4() failed (24: Too many open files)
2019/07/25 08:31:31 [crit] 15930#15930: accept4() failed (24: Too many open files)
2019/07/25 08:31:31 [crit] 15930#15930: accept4() failed (24: Too many open files)
2019/07/25 08:31:31 [crit] 15930#15930: accept4() failed (24: Too many open files)

原因

出现这个错误可能是由于系统的ulimit限制和nginx自身的配置有关系,先来了解下概念。
什么是ulimit?
ulimit命令用来限制系统用户对shell资源的访问。如果不懂什么意思,下面一段内容可以帮助你理解:
假设有这样一种情况,当一台 Linux 主机上同时登陆了 10 个人,在系统资源无限制的情况下,这 10 个用户同时打开了 500 个文档,而假设每个文档的大小有 10M,这时系统的内存资源就会受到巨大的挑战。
ulimit 用于限制 shell 启动进程所占用的资源,支持以下各种类型的限制:所创建的内核文件的大小、进程数据块的大小、Shell 进程创建文件的大小、内存锁住的大小、常驻内存集的大小、打开文件描述符的数量、分配堆栈的最大大小、CPU 时间、单个用户的最大线程数、Shell 进程所能使用的最大虚拟内存。同时,它支持硬资源和软资源的限制。
简单来说,ulimit描述符可以对用户打开的文件数量进行限制(不止限制打开文件数量),让单个用户不至于打开较多的文件,导致系统奔溃或者资源不足的情况。

解决

修改系统 limit 限制

# 修改系统limit限制
vim /etc/security/limits.conf
# open files  (-n)
* soft nofile 65536
* hard nofile 65536

# max user processes   (-u)
* soft nproc 65565
* hard nproc 65565
# 退出登录重新连接查看参数配置
ulimite -a

如果某一项没有生效,在/etc/security/limits.d下的文件里设置,此文件中的配置会覆盖1中的文件,例如

*          soft    nproc     65565

如果还没生效,直接重启;

修改 nginx配置

# 修改了系统的 max open files,并不代表nginx的
# 先查看 nginx 的 ulimits:
grep 'open files' /proc/$( cat /var/run/nginx.pid )/limits

# 修改 nginx.conf,
# 添加:以下两点
worker_rlimit_nofile 65535; # (has to be smaller or equal to LimitNOFILE set above)
events {
    worker_connections  65535;
}

# 修改 nginx.service
sudo vim /lib/systemd/system/nginx.service # (仅适用于 ubuntu)
# 添加如下:
[Service]
LimitNOFILE=65535

# 重启服务:
sudo systemctl daemon-reload
sudo systemctl restart nginx
posted @   Star-Hitian  阅读(86)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 海阔天空 Beyond
  2. 2 此生过半 Audio artist
  3. 3 让我欢喜让我忧 Audio artist
  4. 4 P.I.M.P. Audio artist
  5. 5 Extasy Audio artist
海阔天空 - Beyond
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 黄家驹

作曲 : 黄家驹

编曲 : Beyond/梁邦彦

制作人 : Beyond/梁邦彦

今天我 寒夜里看雪飘过

怀着冷却了的心窝漂远方

风雨里追赶 雾里分不清影踪

天空海阔你与我

可会变 (谁没在变)

多少次 迎着冷眼与嘲笑

从没有放弃过心中的理想

一刹那恍惚 若有所失的感觉

不知不觉已变淡

心里爱 (谁明白我)

原谅我这一生不羁放纵爱自由

也会怕有一天会跌倒

背弃了理想 谁人都可以

哪会怕有一天只你共我

今天我 寒夜里看雪飘过

今天我 寒夜里看雪飘过

怀着冷却了的心窝漂远方

风雨里追赶 雾里分不清影踪

天空海阔你与我

可会变 (谁没在变)

原谅我这一生不羁放纵爱自由

也会怕有一天会跌倒

背弃了理想 谁人都可以

哪会怕有一天只你共我

仍然自由自我 永远高唱我歌

仍然自由自我 永远高唱我歌

走遍千里

原谅我这一生不羁放纵爱自由

也会怕有一天会跌倒

背弃了理想 谁人都可以

哪会怕有一天只你共我

背弃了理想 谁人都可以

哪会怕有一天只你共我

原谅我这一生不羁放纵爱自由

也会怕有一天会跌倒

背弃了理想 谁人都可以

哪会怕有一天只你共我

录音 : Shunichi Yokoi

录音 : Shunichi Yokoi

混音 : Shunichi Yokoi

录音室 : Greenbird St./Tokyu Fun St./West Side St.(Tokyo/From Jan/to Apr./1993)

母带工程师 : Setsu Hisai at Tokyu Fun St.

弦乐 : 桑野圣乐团 (Kuwano Strings)

OP : Amuse Inc. & Fun House Inc.

SP : Amuse H.K. Ltd.