我们有一个带有 Nginx 的 Ubuntu 服务器。
ulimit -n
返回1024并且在/etc/nginx/nginx.conf中有以下设置:
user www-data;
worker_processes auto;
events {
worker_connections 1024;
}
我们阅读了一些有关“优化 Nginx”、文件描述符、worker_connections 等的文档和各种博客。例如:https://docs.nginx.com/nginx-management-suite/admin-guides /配置/配置网关/
您可能还需要调整进程可以打开的最大文件描述符数 (worker_rlimit_nofile),以与工作连接数保持一致。请注意,rlimit_nofile 是一个系统设置,因此请务必检查您的 Linux 发行版的用户限制,因为这些限制可能更严格。
假设我们需要将工作连接数量增加一倍,从1024到2048。如果我们要修改配置(并重新启动 nginx):
user www-data;
worker_processes auto;
worker_rlimit_nofile 2048; // <<< added
events {
worker_connections 2048; // <<< changed
}
考虑到
ulimit -n
返回 1024 就足够了吗?或者这些更改还不够,不会产生效果,需要通过运行来增加系统对文件描述符的软限制:
ulimit -n 2048
或者通过将以下行添加到 shell 配置文件(例如 /etc/security/limits.conf):
www-data soft nofile 2048
www-data hard nofile 2048
(不确定这是全部还是还有一些配置文件需要修改)
两个地方都必须换。
这将提高当前会话的软限制(如果您寻求永久更改,则在
/etc/security/limits.conf
中)
希望这有帮助
worker_rlimit_nofile 2048;
worker_connections 2048;