知识点
/etc/security/limits.d/90-nproc.conf 与 /etc/security/limits.conf 都是系统用户资源配置文件
/etc/security/limits.conf 配置文件可限制文件打开数,系统进程等资源,在该文件配置中写的最大用户进程数是受/etc/security/limits.d/90-nproc.conf配置上限影响的。
一般系统普通用户进程数满了都是修改/etc/security/limits.d/90-nproc.conf文件。
排查过程
服务器报错
ErrorException: proc_open(): fork failed - Resource temporarily unavailable
首先查看资源使用情况
top
查看服务器资源大概使用情况,cpu、内存 正常。ps -ef|wc -l
进一步查看当前用户下的进程数量在1024 左右
初步判断是用户最大进程数限制
ulimit -a
查看用户最大进程配置 是 31207
max user processes (-u) 31207
很迷惑 !??明明数量没限制为什么进程一直在1024左右。
- google 查询相关问题
最终发现
/etc/security/limits.conf 配置文件可限制文件打开数,系统进程等资源,在该文件配置中写的最大用户进程数是受/etc/security/limits.d/90-nproc.conf配置上限影响的。
修改/etc/security/limits.d/90-nproc.conf
文件为
1 | * soft nproc 10240 |
解决问题