Linux最大執行緒數限制

2022-09-06 12:12:24 字數 1180 閱讀 1067

開始以為是記憶體不足導致無法建立執行緒,把jvm的-xms,-xmx的2個引數都加大一倍:-xms2048m -xmx2048m。把-xss引數調小,還是啟動失敗。應該是系統方面的限制了,這台機器上搞了100個過tomcat程序,還有不少其他軟體,東西比較多且雜。確認過機器的記憶體還是足夠的,先排查系統引數,之後再清理垃圾資源了。

系統可生成最大執行緒數

cat /proc/sys/kernel/threads-max

這個值很大,tomcat程序的全部執行緒數肯定沒有超過它,如果實際執行緒數比它大可改大(實際可能是**問題,開啟了太多執行緒)。

程序最大執行緒數

ps -elf | grep 專案名 | wc -l 檢視單個專案執行緒數,啟動失敗的這個專案執行緒數一般在600左右

cat /proc/sys/vm/max_map_count

65530

這個值沒有問題,jvm的啟動引數為-dconfig.server.maxthreads=3000,也沒有問題

使用者最大程序數

ulimit -a

其中max user processes就是表示使用者的最大程序數,我的這個值很大,程序數也沒有超過它。如果超過的話,可以修改最大程序數的配置

vi /etc/security/limits.d/90-nproc.conf

* soft nproc 1024

root soft nproc unlimited

上面可以看除了root使用者外的所有使用者均限制為1024,因此通過可以注釋此行或者將值改大,儲存後修改立刻生效

#* soft nproc 1024

root soft nproc unlimited

整個系統已用的執行緒或程序數

cat /proc/sys/kernel/pid_max

該值是32678(32位linux系統可建立的最大pid數是32678),查詢當前整個系統已用的執行緒或程序數:pstree -p | wc -l,結果比32678稍小,問題就在這了

vim /proc/sys/kernel/pid_max,改為65535儲存退出的時候報錯如下

/proc/sys/kernel/pid_max e667 fsync failed

改成下面方式即可:

echo "65535" > /proc/sys/kernel/pid_max

不需要重啟,儲存後立刻生效,重啟專案終於好了

Linux下能夠建立的最大執行緒數

1.首先可以執行下面的程式檢查,檢查你現在的系統總共能建立多少個執行緒。我的系統上是i 380,也就是最多能建立380個執行緒。後面分析為什麼是它。maxthread.cc compile gcc maxthread.cc o thread lpthread include include incl...

Linux 系統開啟最大執行緒數 調優

系統最大執行緒數說明 系統可開啟的最大執行緒數,可根據系統本身負載配置進行調優。檢視系統最大執行緒數 1 檢視系統開啟的最大執行緒數。root node01 ulimit u 3818 2 查系統支援的最大執行緒數,一般會很大,相當於理論值。root node01 cat proc sys kern...

tomcat最大執行緒數 最大等待數和最大連線數

tomcat是目前較為常用的web容器,那麼怎麼配置tomcat才能使得自己的服務效率更高,今天我主要解釋一下tomcat的最大執行緒數 maxthreads 最大等待數 acceptcount 和最大連線數 maxconnections maxthreads 最大執行緒數 每一次http請求到達w...