当前位置:Linux教程 - Linux文化 - linux 支持的最大进程数是多少?

linux 支持的最大进程数是多少?


开发手册上这么说: Linux 中,每一个进程用一个 task_struct (在 Linux 中 task 和 process 互用)的数据结构来表示,用来管理系统中的进程。 Task 向量表是指向系统中每一个 task_struct 数据结构的指针的数组。这意味着系统中最大进程数受 task 向量表的限制,缺省是 512 。

源代码中: max_threads = mempages / (THREAD_SIZE/PAGE_SIZE) / 8;

init_task.rlim[RLIMIT_NPROC].rlim_cur = max_threads/2; init_task.rlim[RLIMIT_NPROC].rlim_max = max_threads/2; 在i386上是4096

到底是512,还是4096

>>> 此贴的回复 >> 现在的内核好像没有这个限制了,《linux内核设计与实现》上说为了与老版本的unix和linux兼容,pid的最大值默认是32767(short int的最大值),如果你需要的话还可以不考虑和老版本兼容,修改/proc/sys/kernel/pid_max来提高上限。

>>> 此贴的回复 >> 在LINUX 0.11中支持64个

>>> 此贴的回复 >> 每个进程都要在全局段描述表GDT中占据两个表项,段寄存器中用作GDT表下标的位段宽度是13位,所以GDT中可以有8192个描述项,除一些系统开销以外,还有8180个表项可以使用,所以系统中理论上最大的进程数是4090

>>> 此贴的回复 >> 64个 见《Linux内核设计与实现》陈莉君等译

>>> 此贴的回复 >> Linux允许的最大进程数可以通过 ulimit -u来查看

>>> 此贴的回复 >> 高版本的LINUX内核对进程的限制如楼上所说,从理论上说只会受到整形变量表示的域的限制,实际上会受到内存的限制

>>> 此贴的回复 >> 看你的RAM 和SWAP的大小