解决Unable to create new native thread
两种类型的Out of Memory java.lang.OutOfMemoryError: Java heap space error 当JVM尝试在堆中分配对象,堆中空间不足时抛出。一般通过设定JAVA启动参数 -Xmx 最小可用内存解决。 java.lang.OutOfMemoryError: Unable to create new native thread 当JVM向OS申请创建线程,而OS不能分配一个本地线程时抛出。 了解系统参数 系统级最大进程ID $ sysctl -a | grep kernel.pid_max kernel.pid_max = 32768 # 输出结果表示当前系统允许的最大进程数为32768 $ cat /proc/sys/kernel/pid_max # 命令功用与上述同样 $ echo 200000 > /proc/sys/kernel/pid_max # 修改系统级最大进程数为200000,可通过sysctl查看修改 系统级最大线程数 # /proc/sys/kernel/threads-max 限制了系统级最大线程数 $ echo 120000 > /proc/sys/kernel/threads-max # 修改系统级最大线程数为120000,可通过sysctl查看修改 # Linux没有每个进程单独的最大线程数限制 ulimit