记一次生产线程数耗尽,导致内存溢出(outOfMemoryError)问题
作者:互联网
问题:
数据源连接池线程数最大连接数最初设置300,但是一周有2-3次发生活跃连接数超过最大线程数,导致线程堵塞,服务查询等待超时,所以运维将最大线程数调至1500,这样导致JVM创建的线程数大大增多,原先配置的JVM内存不够使用,导致内存溢出,无法创建线程。
解决:
后将最大线程数调至1024,保证不会超过JVM内存限制。
系统能创建的线程数的计算公式如下:
(MaxProcessMemory - JVMMemory - ReservedOsMemory) / (ThreadStackSize) = Number of threads
MaxProcessMemory 指的是一个进程的最大内存
JVMMemory JVM内存
ReservedOsMemory 保留的操作系统内存
ThreadStackSize 线程栈的大小
标签:连接数,数调,程数,线程,内存,JVM,outOfMemoryError,ReservedOsMemory 来源: https://www.cnblogs.com/pluto-yang/p/12625592.html