ERROR

[AWS EC2/Spring Boot/CSV] Handler dispatch failed: java.lang.OutOfMemoryError: Java heap space

alsruds 2024. 11. 12. 21:55
Handler dispatch failed: java.lang.OutOfMemoryError: Java heap space

 

🌸 상황 🌸

Spring Boot 에서 CSV 파일을 다운받아 읽는 코드를 작성했다.

로컬에서는 잘 돌아갔는데, aws ec2 에서는 heap memory 오류가 났다.

 

 

🧶 시도 🧶

- 처음에는 CSV 파일을 다운받을 때 생긴 오류인 줄 알았다. 그래서 heap memory 크기를 2GB로 늘려주는 설정 파일을 추가해서 배포해주었는데 잘 되지 않았다. t2.micro 를 사용하고 있었는데 1GB 가 최대 한도이기 때문에 늘리지 못한다는 글도 보았다.

# .ebextensions 파일의 jvm.config
option_settings:
  aws:elasticbeanstalk:application:environment:
    JAVA_OPTS: "-Xmx2048m"

 

 

📎 해결 📎

- 문득, 이 에러가 CSV 파일을 다운받을 때 생기는 오류인지, CSV 파일을 읽으면서 발생하는 오류인지 의문이 들었다.

- 원래 한 번에 CSV 파일을 읽어들이는 코드를 사용했었는데 ( List<String[]> records = csvReader.readAll() )

- 한 줄씩 읽어들이는 코드로 변경했다.

String[] record;
while ((record = csvReader.readNext()) != null) {
  ...
}