Apache - 突然出现“打开文件过多”

Apache - 突然出现“打开文件过多”

因此我们有一个在 Linux 中运行的 apache 服务器,没有任何问题。

昨天我们重启了服务器,从那时起我们注意到 apache 进程打开的文件数量一直在增加,直到几个小时后服务器无法接收请求,错误日志中充满了以下错误:

(24)Too many open files: file permissions deny server access: /var/www/html/*X*
(24)Too many open files: /var/www/html/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable

我们检查了打开的文件,发现它确实达到了限制(设置为 4096)。我们可以增加限制,但这可能只会增加正常运行时间,而不能解决问题,因为这种行为不正常。没有额外的负载。

并检查打开的文件,我们注意到异常增加的打开文件是unix套接字,即lsof -p PID充满了:

httpd   19848 apache   13u  unix 0xffff880238a63380      0t0   204055 socket
httpd   19848 apache   14u  unix 0xffff8800aa3123c0      0t0   204183 socket
httpd   19848 apache   15u  unix 0xffff880037a0acc0      0t0   204201 socket

我不是一位经验丰富的 Linux 管理员(管理员目前不在场),所以我不太清楚如何进一步调查这个问题。

是的,我已经讨论过许多相关问题,但没有任何结果。

更新 使用命令测试ss发现有很多套接字,如下所示:

u_str UNCONN     0      0                                                          * 331727                                                      * 0
u_str UNCONN     0      0                                                          * 331729                                                      * 0
u_str UNCONN     0      0                                                          * 331731                                                      * 0
u_str UNCONN     0      0                                                          * 331733                                                      * 0
u_str UNCONN     0      0                                                          * 331735                                                      * 0

相关内容