1.python项目部署报错pthread_create failed for thread 13 of 48: Resource temporarily unavailable
报错说明:线程数不够
1)排错过程:
ulimit -a查看docker基础镜像
其中open files为一个任务打开的最大进程数
max user processes为当前用户同时打开的最大进程数,(-u) unlimited为该限制被设置为无限大,用户可以创建任意数量的进程。
ulimit -a查看服务器
由此可以看到镜像中的进程数量是足够的,在服务器中一个任务打开的进程数为1024比较小,而该gunicorn中配置
workers 50
worker-connections 1000 最大并发为5000,所以可能会超过服务器的限制
2)处理方式:
在服务器limits文件中尾部添加如下内容
vi /etc/security/limits.conf
* - nofile 1048576
* - nproc 1048576
将一个任务打开的进程数和任何用户最大的进程数都设置为1048576,此配置打开新链接后生效,不用重启。
然后问题解决。