# 51124 먹통 사건 사용자 시나리오 (restart loop) **상태**: 부분 (원인 확정/수동 복구 완료, 구조 개선 미적용) **작성일**: 2026-03-04 **대상 서비스**: `rb8001`(또는 robeing_monitor), Docker 운영 --- ## 1) 목적 - 사용자가 실제로 겪은 "서버 조작 불가 먹통" 사건을 사실 기준으로 고정한다. - 이후 개선은 "응답 속도"가 아니라 "먹통 재발 방지"를 1순위로 검증한다. ## 2) 실제 실패 장면 (확정 사실) ### 사건 흐름 1. 컨테이너 상태가 `Restarting (1)`로 반복됨. 2. `python main.py` 프로세스가 CPU `600~700%` 점유. 3. 서버 GUI/입력이 밀리며 마우스와 터미널 조작이 사실상 불가. 4. 팬 소음 증가(고부하에 따른 냉각 동작). 5. 컨테이너 중지 후 CPU와 조작성이 정상화. ### 사용자 체감 - "느리다"가 아니라 "아예 조작이 안 된다." - 업무 중 요청 재시도조차 못 하고 운영자가 강제 중지 조치를 해야 한다. ## 3) 원인 확정 근거 | 항목 | 관측값 | 판정 | |------|--------|------| | 컨테이너 | `Restarting (1)` 반복 | 재시작 루프 발생 | | 프로세스 CPU | `python main.py` 600~700% | 다코어 과점유 | | 메모리 | 16GB 중 약 3GB 사용, swap/OOM 없음 | RAM 원인 아님 | | 하드웨어 | CPU/RAM/SSD 이상 징후 없음 | HW 원인 아님 | ## 4) 즉시 복구 조치 (실제 수행) - `docker stop robeing_monitor` - `docker stop $(docker ps -q)` - 결과: CPU 부하 정상화, 입력 가능 상태 회복 ## 5) 개선 후 장면 (사용자 기준) ### 장면 - 동일 부하 상황에서도 컨테이너가 재시작 루프에 빠지지 않고, - 운영자는 서버를 강제 중지하지 않아도 서비스를 계속 조작할 수 있다. ### 기대되는 체감 변화 - 마우스/터미널 멈춤 없음 - "전체 컨테이너 강제중지" 대응이 사라짐 - 장애 발생 시에도 특정 서비스만 격리/복구 가능 ## 6) 재발 방지 검증 기준 | 항목 | 현재 사건 기준 | 개선 목표 | |------|----------------|-----------| | Restart loop | 발생 | 0회 | | CPU 급등 | 600~700% 관측 | 장시간 지속 300% 초과 0회 | | 운영 조작성 | 조작 불가 구간 발생 | 조작 불가 0회 | | 긴급 대응 | 전체 컨테이너 중지 필요 | 단일 서비스 격리로 복구 | ## 7) 완료 판정 - 운영자가 "서버 전체 멈춤" 없이 장애를 제어할 수 있어야 함. - 동일 유형 장애에서 restart loop 재발이 없어야 함. - 사용자 체감 기준으로 "멈춤"이 아니라 "지연 내 복구 가능" 상태여야 함. ## 8) 연결 문서 - [51123 임시복구 서비스 연속성 조치내역](../troubleshooting/260304_51123_임시복구_서비스연속성_조치내역.md) - [자기개선 루프 DB/서비스 구현 실행계획](../plans/260303_자기개선루프_DB_구현_실행계획.md)