检查系统限制,并根据需要修改过低的值:
echo
"100000"
> /proc/sys/kernel/threads-max
echo
"100000"
> /proc/sys/kernel/pid_max (默认
32768
)
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