Linux下一个进程可以创建的最大线程数是多少?
如何(如果可能的话)修改这个值?
Linux下一个进程可以创建的最大线程数是多少?
如何(如果可能的话)修改这个值?
当前回答
Linux对每个进程没有单独的线程限制,只是对系统上进程总数的限制(线程本质上只是在Linux上具有共享地址空间的进程),您可以像这样查看:
cat /proc/sys/kernel/threads-max
默认为内存页数/4。你可以这样增加:
echo 100000 > /proc/sys/kernel/threads-max
对于单个用户可以创建的进程(以及线程)的数量也有限制,有关这些限制的详细信息,请参阅ulimit/getrlimit。
其他回答
要检索它:
cat /proc/sys/kernel/threads-max
设置方法:
echo 123456789 | sudo tee -a /proc/sys/kernel/threads-max
123456789 = #线程
linux上合适的100k线程:
ulimit -s 256
ulimit -i 120000
echo 120000 > /proc/sys/kernel/threads-max
echo 600000 > /proc/sys/vm/max_map_count
echo 200000 > /proc/sys/kernel/pid_max
./100k-pthread-create-app
来自@Thomas的2018年更新,关于systemd系统:
/etc/systemd/logind.conf: UserTasksMax=100000
如果使用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
我们可以看到linux中下面文件中定义的最大线程数
猫/proc/sys/kernel/threads-max
(OR)
Sysctl -a | grep threads-max
Linux对每个进程没有单独的线程限制,只是对系统上进程总数的限制(线程本质上只是在Linux上具有共享地址空间的进程),您可以像这样查看:
cat /proc/sys/kernel/threads-max
默认为内存页数/4。你可以这样增加:
echo 100000 > /proc/sys/kernel/threads-max
对于单个用户可以创建的进程(以及线程)的数量也有限制,有关这些限制的详细信息,请参阅ulimit/getrlimit。