Java/Spring

ERROR - java.lang.OutOfMemoryError: Java heap space

코딩공부 2021. 9. 16. 17:04

java.lang.OutOfMemoryError: heap space

 

 

Linux 터미널

1) 톰캣의 메모리 값을 확인

 

[root@XXXXXXX conf]# ps -ef | grep tomcat

 

2) tomcat이 사용중인 PID 확인


root        1403       1  0 09:49 ?        00:01:20 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-0.el8_3.x86_6

 ...

org.apache.catalina.startup.Bootstrap start

 

3) JVM의 HEAP 영역 정보 확인

 

- jmap은 JVM을 모니터링 할 수 있는 도구 

[root@XXXXXXX conf]# sudo jmap -heap 1403  

 

Attaching to process ID 1403, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.292-b10

using thread-local object allocation.
Mark Sweep Compact GC

Heap Configuration:
   MinHeapFreeRatio         = 40
   MaxHeapFreeRatio         = 70
   MaxHeapSize              = 213909504 (204.0MB)
   NewSize                  = 4849664 (4.625MB)
   MaxNewSize               = 71303168 (68.0MB)
   OldSize                  = 9830400 (9.375MB)
   NewRatio                 = 2
   SurvivorRatio            = 8
   MetaspaceSize            = 21807104 (20.796875MB)
   CompressedClassSpaceSize = 1073741824 (1024.0MB)
   MaxMetaspaceSize         = 17592186044415 MB
   G1HeapRegionSize         = 0 (0.0MB)

Heap Usage:
New Generation (Eden + 1 Survivor Space):
   capacity = 42663936 (40.6875MB)
   used     = 7838808 (7.475669860839844MB)
   free     = 34825128 (33.211830139160156MB)
   18.373382146457374% used
Eden Space:
   capacity = 37945344 (36.1875MB)
   used     = 3120216 (2.9756698608398438MB)
   free     = 34825128 (33.211830139160156MB)
   8.222921895239637% used
From Space:
   capacity = 4718592 (4.5MB)
   used     = 4718592 (4.5MB)
   free     = 0 (0.0MB)
   100.0% used
To Space:
   capacity = 4718592 (4.5MB)
   used     = 0 (0.0MB)
   free     = 4718592 (4.5MB)
   0.0% used
tenured generation:
   capacity = 94625792 (90.2421875MB)
   used     = 63503288 (60.56145477294922MB)
   free     = 31122504 (29.68073272705078MB)
   67.10991438782357% used

 

4) 메모리 1GB 기준

 

\bin\catalina.sh

최상단에 추가

JAVA_OPTS="$JAVA_OPTS -Xms512m -Xmx512m -XX:MaxPermSize=512m"

 

저장

 

5) 톰캣 껏다 켜기

 

cd 톰캣설치경로/bin

./shutdown.sh

./startup.sh