MySQL 드라이버와 Druid 커넥션 풀 설정 불일치로 인한 Full GC 발생 원인 및 해결 방안
초기 대응 및 현황 파악
장애 발생 당시 3개의 인스턴스에서 Full GC가 발생했으며, 나머지 인스턴스들의 Old Generation 영역도 임계치에 도달해 있었습니다. 다수의 인스턴스가 동시에 Full GC에 진입하면 서비스 전체의 연쇄 장애(Snowball) 현상이 발생할 수 있으므로, 현장 조사를 위해 하나의 인스턴스를 격리한 후 나머지 인스턴스들을 순차적으로 재시작하는 롤링 ...
6월 6일 17:51에 게시됨
JVM 메모리 모델 변천사와 JDK 버전별 가비지 컬렉션 및 주요 신기능 분석
JVM 메모리 모델의 변천사 (JDK 1.6 ~ 1.8)
JVM의 런타임 데이터 영역은 버전이 업그레이드되면서 지속적으로 최적화되었습니다. 특히 JDK 1.6, 1.7, 1.8을 거치며 메모리 구조에 큰 변화가 있었습니다.
JDK 1.6: 프로그램 카운터, JVM 스택, 네이티브 메서드 스택, 힙, 메서드 영역(PermGen: 문자열 상수 풀, 정적 변수, 런타임 상수 풀 포함)
JDK 1.7: 문자열 상수 ...
6월 6일 02:56에 게시됨
자바 백엔드 개발자를 위한 심화 기술 면접 가이드
JVM(Java Virtual Machine)의 심층 이해
자바 애플리케이션의 성능과 안정성을 좌우하는 핵심은 JVM에 대한 깊은 이해입니다. 단순히 코드를 작성하는 것을 넘어, 코드가 메모리상에서 어떻게 동작하는지 파악하는 것이 중요합니다.
JVM 내부 구조와 런타임 데이터 영역
JVM은 클래스 로더, 실행 엔진, 그리고 데이터를 저장하는 런타임 데이터 영역으로 구성 ...
5월 29일 22:12에 게시됨
CPU 30%에 시스템이 멈춘 이유
실제 운영 환경에서 자주 발생하는 장애 시나리오입니다.
업무에서 시스템 응답 속도가 눈에 띄게 느려졌다는 피드백이 들어왔습니다. 사용자들은 "인터페이스가 멈춘다", "화면이 계속 로딩된다"고 불평합니다.
모니터링 시스템을 확인해보면 다음과 같습니다:
CPU 사용률: 30%
메모리 사용률: 55%
로드 애버리지: 0.8
디스크 IO: 정상
Grafana 지표는 모두 정상입니다.
...
5월 24일 01:56에 게시됨