1、總結系統限制有:
/proc/sys/kernel/pid_max #查系統支持的最大線程數,一般會很大,相當於理論值
/proc/sys/kernel/threads-max
max_user_process #系統限制某用戶下最多可以運行多少進程或線程,使用命令:ulimit -u
注:修改max_user_process的數值,只需要修改/etc/security/limits.conf即可,但是這個參數需要修改/etc/security/limits.d/90-nproc.conf
附錄:
附錄1:centos 6.*可以修改/etc/security/limits.d/90-nproc.conf
我這邊是通過修改/etc/security/limits.conf,在最后添加
* soft nproc 65535
* hard nproc 65535
查看默認的線程棧大小,單位是字節(Bytes),使用命令:ulimit -s
/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 進程號 | wc -l
# top -H 進程號 | wc -l
上面用的是管道,關於管道:管道符號"|"左邊命令的輸出作為右邊命令的輸入
4、查詢當前整個系統已用的線程或進程數
pstree -p | wc -l