피드로 돌아가기
I Paid the Bill for AI-Written Code Months Later
Dev.toDev.to
Infrastructure

AI 생성 sleep 루프 제거 및 systemd Timer 전환으로 리소스 누수 해결

I Paid the Bill for AI-Written Code Months Later

Mustafa ERBAY2026년 6월 12일5intermediate

Context

제조 ERP의 AI 기반 생산 계획 모듈 내 데이터베이스 유지보수 작업 최적화 필요성 대두. 초기 설계 시 Python 스크립트 내부의 while-sleep 루프를 통해 pg_repack 및 VACUUM ANALYZE를 주기적으로 실행하는 구조 채택.

Technical Solution

  • Python 프로세스의 장기 실행에 따른 점진적 Memory Leak 및 리소스 누수 발생 확인
  • OS 수준의 OOM-Killed 발생 후 프로세스 자동 재시작으로 인한 고부하 작업의 무한 반복 사이클 형성
  • 기존의 Application 레벨 sleep 루프를 제거하고 OS 네이티브 스케줄러인 systemd Timer로 전환
  • OnCalendar 및 OnUnitActiveSec 설정을 통해 작업 단위의 독립적인 프로세스 생명주기 관리
  • 단일 작업 수행 후 즉시 종료되는 Stateless 스크립트 구조로 변경하여 메모리 잔류 문제 원천 차단

Impact

  • 리포트 생성 시간의 30% 증가 및 시스템 프리징 현상 해결
  • 불필요한 pg_repack 반복 실행 중단으로 PostgreSQL WAL bloat 및 Read Replica 동기화 지연 해소

1. 주기적 작업 설계 시 Application 내부 루프보다 OS 네이티브 스케줄러(systemd, cron) 우선 검토

2. 장기 실행 프로세스의 메모리 프로파일링을 통해 누적 리소스 누수 가능성 검증

3. AI 생성 코드의 논리적 정답 여부와 별개로 OS 수준의 프로세스 생명주기(Lifecycle) 적합성 분석

4. 고부하 DB 작업(pg_repack 등) 호출 시 실행 빈도와 시스템 리소스 간의 상관관계 정밀 설계

원문 읽기