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) {
  ...
}