ShimSeongbo / study

0 stars 0 forks source link

Apache-Tomcat 배포 에러 #19

Open ShimSeongbo opened 1 year ago

ShimSeongbo commented 1 year ago

문제점

startup.bat 을 이용하여 배포 시 cmd창이 중간에 꺼짐.

환경설정

해결 방법

1. 로그 확인

Tomcat은 일반적으로 logs 폴더 내에 로그 파일을 저장합니다. 이 폴더는 보통 Tomcat의 설치 디렉터리에 위치합니다. 로그 파일 (catalina.out, localhost.log, catalina.log 등)을 열어 가장 최근에 찍힌 로그 또는 에러 메시지를 확인해 보세요. 이 로그에서 문제의 원인을 찾을 수 있을 가능성이 높습니다.

2. JVM 메모리 설정 확인

Tomcat을 시작할 때 사용되는 스크립트 (예: catalina.sh 또는 startup.bat)에서 JVM 옵션을 설정할 수 있습니다. -Xms와 -Xmx 옵션을 찾아서 현재 설정이 어떤지 확인합니다. 예를 들어, -Xms256m -Xmx512m 이라면 초기 힙 사이즈는 256MB, 최대 힙 사이즈는 512MB입니다. 메모리 설정이 너무 낮다면 이를 증가시킬 수 있습니다.

3. 시스템 리소스 모니터링

서버의 터미널에서 top 또는 htop 명령을 실행하여 현재 CPU와 메모리 사용량을 확인합니다. 메모리 사용량이 높다면, 메모리 부족 문제일 가능성이 높습니다.

4. 에러 메시지

터미널에서 Tomcat을 실행할 때 나오는 에러 메시지가 있다면, 그 내용도 함께 확인해주세요.

나의 문제 해결

Caused by: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space
    at java.util.concurrent.FutureTask.report(Unknown Source)
    at java.util.concurrent.FutureTask.get(Unknown Source)

해결 방법:

JVM 메모리 설정 변경

Tomcat 실행 스크립트 (catalina.sh 또는 startup.bat 등)에서 -Xms와 -Xmx 옵션을 조절해보세요. 예를 들어 -Xms512m -Xmx1024m 같은 식으로 설정할 수 있습니다.

코드 최적화

websquare.http.controller.JavascriptAllPluginResourceController.doHandle 함수에서 특히 많은 메모리를 사용하고 있는 것 같습니다. 이 부분의 코드를 최적화할 수 있는지 확인하세요.

서버 리소스 확인

서버 자체의 메모리가 충분한지 확인해보세요. 메모리가 부족하다면 물리적 혹은 가상 메모리를 늘려야 할 수도 있습니다.

ShimSeongbo commented 1 year ago

JVM 설정을 변경했는데도 애플리케이션이 꺼지거나 메모리 부족 문제가 계속 발생한다면, 다음과 같은 방법들을 고려해 볼 수 있습니다.

JVM 설정 조정

코드 최적화

가비지 컬렉션 로그 분석

캐시 정책 수정

메모리 프로파일러 사용

확장

시스템 모니터링

로그 분석

메모리 부족 문제는 다양한 원인에 의해 발생할 수 있으므로, 위 방법들을 종합적으로 고려하여 접근하는 것이 좋습니다.