OutOfMemoryError: unable to create new native thread
决定当前用户程序能够创建多少线程由2个因素决定
1. 用户环境允许的线程数
cat /etc/security/limits.d/90-nproc.conf
- soft nproc 1024
root soft nproc unlimited
表示非root用户最多只能开1024
- 内存容量
(MaxProcessMemory - JVMMemory - ReservedOsMemory) / (ThreadStackSize) = Number of threads
jdk7默认线程栈需要1m内存, 假设系统总可用内存为1G, 分配给jvm 是512m,操作系统保留120M内存,
最多可以开400左右的线程
3.可以通过pstree, jstack 去查看进程线程数量