*38341 连接到上游客户端时,socket() 失败(24:打开的文件太多)

问题描述 投票:0回答:1

尽管增加了服务器上的“somaxconn”参数和“ulimit”,但如何解决 Nginx 中连接到上游时出现的“38341 socket() 失败(24:打开文件太多)”错误?我遵循了通过 Google 找到的解决方案,包括调整“nginx.conf”和“website.conf”中的系统范围限制和配置,但问题仍然存在。附上这些配置的截图供参考enter image description here

我已经用谷歌搜索并尝试并按照以下步骤进行操作

步骤1)fs.file-max = 2097152

sysctl -w net.core.somaxconn=500000

vm.max_map_count = 250000 net.ipv4.ip_local_port_range = 1024 500000

我在/etc/sysctl.conf 上增加了上述参数

step2)我增加了 /etc/security/limit.conf 的 umlimit

root硬nofile 500000 root 软 nofile 500000

但根据 nginx 日志,我的问题仍然没有解决问题打开的文件太多,因此我的网站 api 响应时间太慢,当我重新启动 nginx 时,它有时会起作用,但请任何人指导我哪里错了并帮助解决了这个问题

以下是我的服务器CPU信息

lscpu 架构:x86_64 CPU 操作模式:32 位、64 位 字节顺序:小端 CPU:24 在线 CPU 列表:0-23 每核线程:2 每个插槽的核心数:12 插座:1 NUMA 节点:1 供应商 ID:GenuineIntel BIOS 供应商 ID:英特尔 CPU系列:6 型号:106 型号名称:Intel(R) Xeon(R) Silver 4310 CPU @ 2.10GHz BIOS 型号名称:Intel(R) Xeon(R) Silver 4310 CPU @ 2.10GHz 步数:6 CPU兆赫:3300.000 CPU 最大 MHz:3300.0000 CPU 最低 MHz:800.0000 博戈MIPS:4200.00 虚拟化:VT-x 一级缓存:48K 一级缓存:32K 二级缓存:1280K 三级缓存:18432K NUMA 节点 0 CPU:0-23

nginx
1个回答
0
投票

运行 lsof 命令列出打开的文件。

您的服务器上打开的文件数量异常,因此您应该找出是什么打开了过多的文件并解决该问题,而不是尝试更改限制。

进一步阅读:https://alvinalexander.com/blog/post/linux-unix/linux-lsof-command/

© www.soinside.com 2019 - 2024. All rights reserved.