WEB/Backend 6

[Spring Boot] Not enough space 메모리 부족

문제 상황commit_memory(0x00007f6dc18f1000, 16384, 0) failed; error='Not enough space' (errno=12)메모리 사용량 99% 찍더니 뻗어버림문제 원인prod 서버 힙사이즈 늘린게 데브에도 배포됨dev는 ec2 micro를 사용하고 있는데 힙 사이즈가 그만큼 없었음처리자바 최대 힙사이즈를 512로 줄임 swap 메모리를 이용하는 방법도 있다지만, 나는 불필요한 메모리를 할당한 것이기 때문에 데브에서만 할당 해제를 해줌[Troubleshooting] AWS EC2 스프링 부트 빌드시 용량 부족 문제 (Not enough space) 해결

WEB/Backend 2024.06.21

[쿼리 튜닝] DB CPU가 99% - 쿼리 중 일부 컬럼만 가지고 오기

문제 상황DB CPU가 99%로 뻗음한번 뻗으면 트래픽 줄어들때까지 복구 안됨문제 원인쿼리에서 member 객체를 찾아오는게 너무 너무 부하가 큼member 객체 너무 큼 -> 객체에서 불필요한 필드 모두 삭제처리24.02.01쿼리 튜닝 : member 를 객체 그대로 찾는 것들을 모두 member Id 만 받아오도록 변경함DB 사이즈 업 : t3.xlargeAWS Performance Insight 설정 후 비효율 쿼리 탐지24.04.01DB 사이즈 스케일 다운 : t3.medium

WEB/Backend 2024.06.21

[Spring Boot] HeapDumpOnOutOfMemoryError : java heap size 에러 해결 과정

문제 상황HeapDumpOnOutOfMemoryError : java heap size이 뜨면서 cpu 사용량은 그대론데 한순간에 뻗어버림 → scaling 도 안되고 그냥 죽음.. 최악문제 원인지난 배포 이후로 생긴 오류로 추정 됨지난 배포 : 성별을 List 에 담는 로직으로 변경했었음List 에 때려 박는 로직은 heap size 오류가 생기는 듯처리2024.03.13리스트에 성별 담는 것에서 쿼리 자체에 성별 필터링 / 주선자 필터링을 넣는 것으로 변경Heap size 오류 나면 힙 덤프 찍히도록 /var/log에 찍히도록 추가함[JAVA] Heap 모니터링 & Heap Dump 분석하기2024.03.18저녁에 다시 카드 보여주는 로직에 반복문 내부에 디비 연결하는 로직 포문 밖으로 뺌2024.0..

WEB/Backend 2024.06.21

[Spring Boot] Thread starvation or clock leap detected : 문제 해결

문제 상황Thread starvation or clock leap detected이 뜨면서 cpu 상태 99%로 오르다가 뻗어버림문제 원인카드 발급 로직을 Async 로 사용하는데, 사용하며 쓰레드 풀의 커넥션이 부족하여 데드락이 걸렸던 것으로 추정https://velog.io/@mbsik6082/Spring-Data-JPA-Transaction-Propagation-EntityManager-PersistContext%EC%97%90-%EA%B4%80%ED%95%9C-%EA%B3%A0%EC%B0%B0 Spring Data JPA Transaction Propagation, EntityManager, PersistContext에 관한 고찰https://velog.io/@mbsik6082/Thread-sta..

WEB/Backend 2024.06.21