在项目部署过程中,切换至项目所属用户下发现linux服务器报错
su: cannot set user id: Resource temporarily unavailable
发现此错误之后遂切换至root用户通过命令查看项目用户开启的项目进程已经超过4096,远远超出系统默认的1024。由于项目对外开放,访问量肯定不小,就目前来看加大linux用户所能开启的最大进程数才能拉我出坑。
附上查询用户进程数的命令:
lsof -u 用户名 | wc -l
直接附上解决方式,通过root用户cd至以下目录
cd /etc/security/limits.d/
可能发现两种类似文件
/etc/security/limits.d/90-nproc.conf
/etc/security/limits.d/20-nproc.conf
这是由于Linux版本不一致,导致系统获取用户最大默认进程数需要从不同的文件获取
最开始打开时显示的文件内容
root soft nproc unlimited
添加一条
用户 soft nproc 65535
直接保存即可生效
补充一点相关知识:
Linux对于每个用户,通过系统限制其最大进程数。提高系统性能。
用ulimit -a 来显示当前的各种用户进程
* soft nproc 65535
用户 soft nofile 65535
说明:* 代表针对所有用户,noproc 是代表最大进程数,nofile 是代表最大文件打开数
望此文对各位阅者有所帮助