我在 VDS 上运行 Ubuntu 17.10 服务器。我在其上运行 3proxy。
问题是 VDS 以某种方式不允许每个进程运行超过 5000 个线程,我认为是这样。我之所以这么认为,是因为 3proxy 进程从未超过 5000 个线程。
编辑:我在日志中看到的错误是:
pthread_create():_Resource_temporarily_unavailable
因此,我想通过检查每个进程的实际线程数限制来检查我的判断是否正确。我的想法是创建一个脚本,它将启动系统允许的尽可能多的线程,然后检查结果会有多少个线程。
我的问题是我不知道如何创建这样的脚本
答案1
每个进程没有线程限制!
但是系统上的进程总数是有限制的(线程本质上就是 Linux 上具有共享地址空间的进程)
cat /proc/sys/kernel/threads-max
默认值是内存页数除以 4。您可以像这样增加它:
echo 100000 > /proc/sys/kernel/threads-max
单个用户可以创建的进程(线程)数量也有限制,请参阅ulimit
此处,但这应该unlimited
在 Ubuntu 上。