當前位置:首頁 » 操作系統 » linux最大線程數

linux最大線程數

發布時間: 2023-06-11 23:13:00

『壹』 linux最大線程數限制及當前線程數查詢

查看系統允許的最大線程數:

Linux無法直接控制單個進程可擁有的線程數,但有參考公式max = VM/stack_size,默認stack為8k,可通過降低stack大小或增加虛擬內存來調大每個進程可擁有的最大線程數;
對於支持多線程的程序如java,有可能會遇到一個進程無法創建更多線程的情形,其原因多種多樣,而OS端可能由此參數造成.

查看系統允許的最大進程數:

ulimit -a 顯示當前所有的資源限制

root用戶下執行 ulimit -a 然後查看 max user processes 這個值通常是系統最大線程數的一半:/proc/sys/kernel/threads-max/2

普通用戶下 ulimit -u 出現的max user processes的值 默認是 /etc/security/limits.d/20-nproc.conf(centos6 是90-nproc.conf) 文件中的

普通用戶默認是1024

打開/etc/security/limits.conf (部分的系統是在/etc/security/limits.d/90-nproc.conf)

設置限制數量,第一列表示用戶,* 表示所有用戶

soft nproc :單個用戶可用的最大進程數量(超過會警告);
hard nproc:單個用戶可用的最大進程數量(超過會報錯);
soft nofile :可打開的文件描述符的最大數(超過會警告);
hard nofile :可打開的文件描述符的最大數(超過會報錯);

重啟後生效
reboot

查詢當前某程序的線程數
pstree -p 進程號 | wc -l
管道符號"|"左邊命令的輸出作為右邊命令的輸入

直接修改/etc/security/limits.conf 文件中的 * soft nproc 65535 值後,普通用戶最大進程數無法達到65535 ,因為用戶的max user processes的值,最後是受全局的kernel.pid_max的值限制。也就是說kernel.pid_max=1024 ,那麼你用戶的max user processes的值是127426 ,用戶能打開的最大進程數還是1024。

永久修改系統最高進程數的方法
在/etc/sysctl.conf中添加kernel.pid_max = 65535
vim /etc/sysctl.conf
kernel.pid_max = 65535
或者:
echo "kernel.pid_max = 65535" >> /etc/sysctl.conf
然後重啟機器。

臨時修改的方法:
echo 65535 > /proc/sys/kernel/pid_max
所以以上都操作完成後,才算是正確修改了max user processes 的值

『貳』 linux c 程序線程問題.

狄仁傑: 元芳樓上的回答你怎麼看!,
元芳: 大人那不科學.

LZ,對於這種問題我只能說你對linux的線程一點都不了解.
去網路看看什麼叫做線程的分離狀態(detached state)吧.

『叄』 linux中一個進程的最大線程數量是多少

linux 系統中單個進程的最大線程數有其最大的限制 PTHREAD_THREADS_MAX
這個限制可以在 /usr/include/bits/local_lim.h 中查看關於Linux命令的介紹,看看《linux就該這么學》,具體關於這一章地址3w(dot)linuxprobe/chapter-02(dot)html
對 linuxthreads 這個值一般是 1024,對於 nptl 則沒有硬性的限制,僅僅受限於系統的資源
這個系統的資源主要就是線程的 stack 所佔用的內存,用 ulimit -s 可以查看默認的線程棧大小,一般情況下,這個值是 8M

『肆』 Linux最大線程數

不知道你的線程是指什麼。

如果你說的是訪問進程的話。你可以改apache的配置文件httpd.conf

一般位置在
/etc/httpd.con
/usr/local/apache/conf/httpd.conf

根據你褲臘大的安裝方式。自胡豎己找找在哪個目錄局雀下

『伍』 Linux 怎麼增大可以創建的最大線程數

檢查ulimit -a 的結果,敬正擾查看stack size:

stack size (kbytes, -s) 8192

8192KB 就是棧的大小。不能超過這個棧的數目,因此上面2)分配的buf大小超過了棧限制,得到了setmentation fault。

LInux上,最大線程數目是:

number of threads = total virtual memory / (stack size*1024*1024)

在32位系統上,進程空間是4G,其中0-3G是用戶空間(0x0-0xBFFFFFFF), 3G-4G是內核空間。
因此理論上講,用戶空間大小/棧大小=最大線程數。3072M/8M=384,亮旦考慮到系統的佔用,主線程等,我的系統上是380. 也許在你的系統上是382.

我們可以減小棧限制或者增大虛擬內存使得線程的數目增加。
檢查虛擬內存: ulimit -v
檢查棧大小: ulimit -s

設置虛擬內存:ulimit -v 新值
設置棧大小:清雹 ulimit -s 新值

『陸』 linux 最多支持多少個線程

默認情況下:
主線程+輔助線程 +<253個自己的線程<=255
含主線程和一個輔助線程,最多255個,即一個用戶只能生成253個線程。
Linux最大線程數限制及當前線程數查詢:
1、總結系統限制有:
/proc/sys/kernel/pid_max #查系統支持的最大線程數,一般會很大,相當於理論值
/proc/sys/kernel/thread-max
max_user_process(ulimit -u) #系統限制某用戶下最多可以運行多少進程或線程
/proc/sys/vm/max_map_count
硬體內存大小
2、Java虛擬機本身限制:
-Xms #intial java heap size
-Xmx #maximum java heap size
-Xss #the stack size for each thread
3、查詢當前某程序的線程或進程數
pstree -p `ps -e | grep java | awk '{print $1}'` | wc -l 或 pstree -p 3660 | wc -l
4、查詢當前整個系統已用的線程或進程數
pstree -p | wc -l
1、 cat /proc/${pid}/status
2、pstree -p ${pid}
3、top -p ${pid} 再按H 或者直接輸入 top -bH -d 3 -p ${pid}
top -H
手冊中說:-H : Threads toggle
加上這個選項啟動top,top一行顯示一個線程。否則,它一行顯示一個進程。
4、ps xH
手冊中說:H Show threads as if they were processes
這樣可以查看所有存在的線程。
5、ps -mp <PID>
手冊中說:m Show threads after processes
這樣可以查看一個進程起的線程數。

『柒』 linux 一個進程 最多開多少線程

32為linux系統最大內存地址4G,0-3GB的給用戶進程(User Space)使用,3-4GB給內核使用
stack size (kbytes, -s) 10240表示線程堆棧大小
3G/10M=最大線程數,但實際會比這個數小一點,因為程序本身占內存,還有些管理線程
可以使用ulimit -s來設置stack size,設置的小一點開辟的線程就多。

同時/usr/include/bits/local_lim.h中的PTHREAD_THREADS_MAX限制了進程的最大線程數
/proc/sys/kernel/threads-max中限制了系統的最大線程數

你自己寫個簡單的代碼就能測試出自己系統最大可以開多少線程

#include <unistd.h>
#include <stdlib.h>
#include <pthread.h>
#include <stdio.h>

void *foo(void *param)
{
}

int main()
{
int i = 0;
pthread_t thread;
while(1)
{
if(pthread_create(&thread,NULL,foo,NULL) != 0)
break;
i++;
}
printf("i=%d\n",i);
return 0;
}

熱點內容
多版本編譯方法 發布:2025-04-06 13:32:22 瀏覽:816
永劫無間和賽博朋克哪個配置高 發布:2025-04-06 13:14:16 瀏覽:155
新建android虛擬機 發布:2025-04-06 12:37:42 瀏覽:830
安卓如何獲取光遇密碼 發布:2025-04-06 12:28:23 瀏覽:832
從電腦拷貝文件到伺服器 發布:2025-04-06 12:10:12 瀏覽:39
rc5演算法 發布:2025-04-06 12:09:35 瀏覽:988
兩個數推演算法 發布:2025-04-06 12:00:50 瀏覽:41
如何把文件夾 發布:2025-04-06 11:59:22 瀏覽:363
如何配置手柄玩lol手游 發布:2025-04-06 11:58:28 瀏覽:72
sql考勤數據 發布:2025-04-06 11:58:26 瀏覽:888