피드로 돌아가기
GeekNewsDatabase
원문 읽기
Codex 로깅 버그가 로컬 SSD에 TB 단위 쓰기를 발생시켜 SSD 수명을 빠르게 소모할 수 있음
로그 레벨 설정 오류로 인한 SSD 37TB 쓰기 증폭 및 수명 소모 장애 해결
AI 요약
Context
Codex의 SQLite 피드백 로그 싱크가 글로벌 TRACE 레벨로 기본 설정되어 대규모 데이터가 무분별하게 기록된 사례임. 고성능 하드웨어로 인해 CPU/Memory 부하가 즉각 드러나지 않았으나, 지속적인 Write-and-Prune 패턴이 SSD의 TBW(Total Bytes Written)를 빠르게 소모시키는 구조적 결함이 발생함.
Technical Solution
- 글로벌 TRACE 기본값 사용을 금지하고 SQLite 피드백 로그의 영구 저장 범위를 엄격히 제한
codex_api::endpoint::responses_websocket등 고빈도/대용량 raw 페이로드의 로깅 중단log,hyper_util,tokio-tungstenite등 저가치 노이즈를 유발하는 의존성 내부 로그의 임계값을 WARN+ 레벨로 상향- 전체 페이로드 저장 방식에서 이벤트 종류, 소요 시간, 토큰 사용량 등 핵심 메타데이터 중심의 요약 저장 방식으로 전환
- 로그 DB의 무제한 성장을 방지하기 위한 글로벌 쓰기 상한(Write Limit) 및 크기 캡 도입 검토
Impact
- 21일 가동 기준 약 37TB의 과도한 SSD 쓰기 발생 및 연간 환산 시 약 640TB 기록 확인
- 로그 필터링 및 타깃 최적화를 통해 전체 로그 발생량의 약 85% 절감
- 보존 행(0.5M) 대비 누적 ID(5.5B)가 1만 배 격차를 보였던 쓰기 증폭(Write Amplification) 현상 제거
실천 포인트
- 프로덕션 환경의 로그 싱크 설정 시 글로벌 기본값 대신 타깃별 개별 레벨(Granular Level) 설정 적용 - Local SQLite 사용 시 Insert-and-Prune 패턴에 의한 Write Amplification 및 WAL 파일 팽창 가능성 검토 - 대용량 Raw Payload 로깅 시 전체 저장 대신 요약(Summarization) 구조 설계 - SSD 기반 시스템에서 TBW 수명에 영향을 줄 수 있는 지속적 I/O 패턴 모니터링 체계 구축