Linux下一个进程可以创建的最大线程数是多少?

如何(如果可能的话)修改这个值?


当前回答

我们可以看到linux中下面文件中定义的最大线程数

猫/proc/sys/kernel/threads-max

(OR)

Sysctl -a | grep threads-max

其他回答

要检索它:

cat /proc/sys/kernel/threads-max

设置方法:

echo 123456789 | sudo tee -a /proc/sys/kernel/threads-max

123456789 = #线程

Linux对每个进程没有单独的线程限制,只是对系统上进程总数的限制(线程本质上只是在Linux上具有共享地址空间的进程),您可以像这样查看:

cat /proc/sys/kernel/threads-max

默认为内存页数/4。你可以这样增加:

echo 100000 > /proc/sys/kernel/threads-max

对于单个用户可以创建的进程(以及线程)的数量也有限制,有关这些限制的详细信息,请参阅ulimit/getrlimit。

我们可以看到linux中下面文件中定义的最大线程数

猫/proc/sys/kernel/threads-max

(OR)

Sysctl -a | grep threads-max

如果使用Suse操作系统,则需要选择其中一种方法

https://www.suse.com/support/kb/doc/?id=000015901

全球性的,

/etc/systemd/system.conf
    DefaultTasksMax=Value

对于特定的ssh服务

/etc/systemd/system/sshd.service.d/override.conf
    TasksMax=Value

Yes, to increase the threads number you need to increase the virtual memory or decrease the stack size. In Raspberry Pi I didn’t find a way to increase the virtual memory, if a decrease the stack size from default 8MB to 1MB It is possibly get more than 1000 threads per process but decrease the stack size with the “ulimit -s” command make this for all threads. So, my solution was use “pthread_t” instance “thread class” because the pthread_t let me set the stack size per each thread. Finally, I am available to archive more than 1000 threads per process in Raspberry Pi each one with 1MB of stack.