jvm 内存溢出,项目部署在tas服务器上,启项目时内存溢出报错问题排查。

项目启动后,多线程加载任务和数据后进行创建xml导出,tas服务器wrapper日志报jvm内存溢出

TATUS | wrapper  | 2018/05/18 09:39:51 | --> Wrapper Started as Service
STATUS | wrapper  | 2018/05/18 09:39:51 | Java Service Wrapper Community Edition 32-bit 3.5.9
STATUS | wrapper  | 2018/05/18 09:39:51 |   Copyright (C) 1999-2011 Tanuki Software, Ltd. All Rights Reserved.
STATUS | wrapper  | 2018/05/18 09:39:51 |     http://wrapper.tanukisoftware.com
STATUS | wrapper  | 2018/05/18 09:39:51 | 
STATUS | wrapper  | 2018/05/18 09:39:51 | Launching a JVM...
STATUS | wrapper  | 2018/05/18 11:43:18 | The JVM has run out of memory.  Restarting JVM.
ERROR  | wrapper  | 2018/05/18 11:43:52 | Shutdown failed: Timed out waiting for signal from JVM.
ERROR  | wrapper  | 2018/05/18 11:43:53 | JVM did not exit on request, terminated
STATUS | wrapper  | 2018/05/18 11:43:58 | Launching a JVM...

排查思路:

1、服务器或电脑可用内存(内存64G,可用33G)

2、tas服务器设置的内存大小是否超出(initmemory=20480,maxmemory=30960未超出服务器可用内存)

        jvm初始化内存若不够用或自动扩大

在tas配置文件wrapper.conf中,我将initmemory设为4096,maxmemory设置为20480,并且将任务线程数减少3个,再次启动项目,发现jvm内存溢出问题没有再次报出,可能是服务器其他项目抢占了服务器可用内存,导致本项目在10万条数据加载时达到maxmemory最大值导致内存不够用。

注:若配置initmemory和maxmemory配置相同(即-Xms和-Xmx配置相同,这样就会避免对的自动扩展),内存则不会自增长,即内存大小已定死。

猜你喜欢

转载自blog.csdn.net/Soul_Programmer_Swh/article/details/80370528