歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> 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的大小


Copyright © Linux教程網 All Rights Reserved