java.lang.OutOfMemoryError:无法创建新的本机线程

java.lang.OutOfMemoryError:无法创建新的本机线程

我正在管理一个服务器托管的应用程序,用户面临以下错误:

java.lang.OutOfMemoryError:无法创建新的本机线程

我搜索了一下,发现可能是没有针对请求的线程的问题,但我发现服务器没有问题,如下所示的内存状态和 CPU 状态:

free -m    #Memory status
             total       used       free     shared    buffers     cached
Mem:         10103       2946       7156          0         25         88
-/+ buffers/cache:       2832       7270
Swap:         1906         26       1880

# df -h    #Disk status
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       217G  172G   34G  84% /
udev            5.0G  4.0K  5.0G   1% /dev
tmpfs           2.0G  264K  2.0G   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            5.0G     0  5.0G   0% /run/shm
/dev/sda1       189M   33M  146M  19% /boot

这是处理器状态信息:

# ps aux | wc -l  #Number of Running Processes
92
# ulimit -a | grep "max user"   #Maximum allowed Users Processes
max user processes              (-u) 80711
# ps axms | wc -l  #Number of Running Threads
376
# cat /proc/sys/kernel/threads-max #Maximum allowed Number of Threads
161422

这是 TOP 输出,显示 Java 服务占用 3G 作为虚拟内存,占用 2.5G 作为常驻内存大小:

top 命令截图

相关内容