我的托管公司大约一周前将我的服务器迁移到一台较新的计算机,除了一个查询上的一个小 ORDERBY 问题之外,一切运行得非常顺利。
昨晚,出乎意料的是,我的网站速度开始变得糟糕,并发现错误日志中充满了“连接到上游时套接字()失败(24:打开的文件太多)”错误。我认为我的自定义 CMS 管理中的某些内容可能会出现问题,昨晚我花了几个小时处理它,然后错误消息突然消失,一切开始顺利运行。
今天下午,服务器又开始出问题了。我重新启动了机器,它立即开始在 nginx 错误日志中填充相同的错误。同样,大约 10 分钟后,错误停止了,服务器从此运行顺利。
无论如何,我都不是 UNIX 管理员,但我可以相当有逻辑地思考。我不知道这里到底发生了什么。
答案1
您可以检查ulimit-n要查看系统允许多少个文件,可以在用户上进行配置,以防您的 nginx 未以 root 身份运行。作为临时修复,如果尚未在中设置为 max,您可以增加该值/etc/security/limits.conf。同时检查您的应用程序是否保持连接处于活动状态并且没有关闭它们,我认为是应用程序问题。
如果您使用 * 代替用户名,它将适用于所有用户。
/etc/security/limits.conf
* soft nofile 1024
* hard nofile 65535