데브옵스
2012년에 비트윈 서버를 마비시켰던 윤초 이야기
두줄요약
2012년 윤초 삽입 시 리눅스 커널과 JVM의 상호작용으로 발생한 서비스 장애를 분석했습니다. chrony 기반 Leap Smear와 최신 시간 서비스로 윤초 영향을 줄이는 방법을 소개합니다.
문제 상황
- 2012년 윤초 삽입 시점에 모든 JVM 인스턴스 CPU 사용률 100% 및 비트윈 전체 서비스 장애
- 채팅 서버와 HBase 등 JVM 기반 구성요소의 요청 처리 불가
원인 분석
- NTP 기반 윤초 보정 과정에서 리눅스 커널 타이머 코드의 라이브락 발생
- 시간 조회를 수행하는 JVM의 스레드 파킹 코드와 커널 버그의 연쇄적 영향
- Ubuntu 12.04 및 당시 JDK7의 미적용 패치 상태
해결 방법
- 장애 당시 모든 JVM 인스턴스 재시작으로 서비스 복구
- chrony 기반 시간 서버와 짧은 동기화 주기로 Leap Smear 적용
- Ansible 프로비저닝 파일 수정 및 전체 서버 재배포로 시간 동기화 설정 반영
성능/운영 포인트
- 최신 리눅스 커널 및 JDK 패치 적용 여부 점검
- Google Public NTP, AWS Adjusted Time 등 Leap Smear 지원 시간 서비스 활용
- 윤초 관련 공지와 운영 이슈의 사전 모니터링



