linux创建线程报错资源受限
Linux Error: 11 Resouce temporarily unavailable
可能涉及到的限制:
1、/proc/sys/kernel/threads-max
系统允许的最大线程数
2、/proc/sys/kernel/pid_max
系统最大pid值
3、用户资源限制
ulimit -u 查看当前用户的max user processes
cat /proc/PID/limits 查看进程资源限制
修改上述限制,可改动配置文件/etc/security/limits.conf,举例如下:
* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* soft nproc 65536
*表示所有用户, soft表示软限制,hard表示硬限制, nproc表示线程数, nofile表示文件描述符数,65536是当前用户的所有进程总和
4、systemd资源限制
4.1 命令方式操作
systemctl set-properity ServiceName TasksMax=infinity //设置服务ServiceName 的线程数上限
systemctl show -p TasksMax ServiceName //查看设置的属性
systemctl daemon-reexec //是配置修改生效
4.2 直接修复文件
/etc/systemd/system.conf //配置所有的服务
/etc/systemd/system/服务名称.service.d/目录配置文件
修改后执行systemctl daemon-reexec使其生效