목록2025/03/27 (2)
엔지니어 블로그
1. Elasticsearch에서 Full GC가 자주 발생하는 이유Elasticsearch는 Java 기반 애플리케이션이기 때문에 JVM의 Heap 메모리 관리가 성능에 큰 영향을 미칩니다. 특히 다음과 같은 이유로 Old 영역에 많은 객체가 쌓여 Full GC가 자주 발생할 수 있습니다.대량의 장기 유지 객체(캐시 데이터, Lucene 인덱스 구조 등) 누적잘못된 메모리 설정(과도한 Heap 크기 설정)비효율적인 인덱싱 작업이나 높은 빈도의 검색 요청으로 인한 객체 생성 증가2. 분산 환경에서의 STW(Stop-The-World) 대응 방식ES는 분산 환경에서 운용되므로, 한 노드에서 STW가 발생하더라도 전체 서비스 중단을 방지할 수 있습니다. 이를 가능하게 하는 주요 설계는 다음과 같습니다.샤딩(..

1. GC(가비지 컬렉션)란?GC란 힙(Heap) 메모리에 동적으로 할당된 객체 중 사용되지 않는 객체를 자동으로 식별하고 제거하는 프로세스를 의미합니다. GC 덕분에 개발자는 메모리 누수와 같은 메모리 관리 문제에 신경 쓰지 않고 프로그래밍에 집중할 수 있게 되었습니다.그러나 GC는 다음과 같은 단점도 존재합니다.객체의 메모리가 정확히 언제 해제되는지 알 수 없어, 개발자가 메모리 관리를 직접 제어하기 어렵습니다.GC가 실행되는 동안 모든 애플리케이션의 동작이 일시적으로 중단되는 Stop-The-World(STW) 현상이 발생하여 오버헤드가 생길 수 있습니다.2. GC 대상은 어떻게 식별할까?GC는 객체의 도달성(Reachability) 개념을 이용해 제거 대상을 식별합니다.객체에 유효한 참조(refe..