檢查系統限制,並根據須要修改太低的值:java
echo
"100000"
> /proc/sys/kernel/threads-max
linux
echo
"100000"
> /proc/sys/kernel/pid_max (默認
32768
)
api
echo
"200000"
> /proc/sys/vm/max_map_count (默認
65530
)
測試
ulimit -u 65536 (設置max user processes的值, 默認4096 每次logout後失效)命令行
持久化修改 /etc/security/limits.d/20-nproc.conf # 實際測試修改/etc/security/limits.conf 並不生效
* soft nproc 65535 #max user processes
若是問題依然存在,繼續
ulimit -s 512 (默認8096)
設置java命令行參數: java -Xss512k -Xmx=1g ..... #將Xss512k與上面的linux stack 512 大小設置一致。
運行附件中程序,可直接顯示最大線程數。
查看java JVM默認參數:
java -XX:+PrintFlagsFinal
Xmx > MaxHeapSize