在docker上启动onlyoffice后,提示
malloc 249108101312 failed 12:cannot allocate memory
nginx worker启动失败
查看nginx配置文件里的相关参数
发现worker_connections值设置的很大,改为1024
重新加载nginx
nginx -s reload
worker_connections
默认值为512.该指令设置单个worker进程最大打开的连接数
一个worker进程的最大连接数。默认为512,按自己系统的硬件配置调整,不能超过worker_rlimit_nofile。
worker_rlimit_nofile
同时连接的数量受限于系统上可用的文件描述符的数量,因为每个套接字将打开一个文件描述符。 如果NGINX尝试打开比可用文件描述符更多的套接字,会发现error.log中出现Too many opened files的信息。
检查文件描述符(文件句柄数)
文件资源限制的配置可以在/etc/security/limits.conf
设置,针对root/user
等各个用户或者*
代表所有用户来设置。
* soft nofile 65535
* hard nofile 65535
用户重新登录生效(ulimit -n)
nginx的worker_rlimit_nofile
现在,将此值增加到大于worker_processes * worker_connections的值。 应该是增加当前worker运行用户的最大文件打开数值
NGINX提供了worker_rlimit_nofile指令,这是除了ulimit的一种设置可用的描述符的方式。 该指令与使用ulimit对用户的设置是同样的效果。此指令的值将覆盖ulimit的值,如:
worker_rlimit_nofile 65535;