virtual-insanity
← 리포트 목록

맥미니 시스템 불안정 진단 및 조치

2026-04-12 claude [시스템, 인프라, 커널패닉, macOS, 진단]

맥미니 시스템 불안정 진단 (2026-04-12)

환경

  • Mac mini M4 (Mac16,10), 16GB, macOS Tahoe 26.3 (25D125)
  • OpenClaw 시스템: gateway + 큐워커 + 파이프라인 등 ~700 프로세스

증상

  • 3일간 커널 패닉 2회 (4/10, 4/11) + 재부팅 4회
  • 크롬 원격 데스크톱 접속 불가
  • Claude/Codex 크래시

근본 원인

1차: gateway 메모리 폭주

  • Node.js 22 기반 gateway가 NODE_OPTIONS 미설정으로 V8 힙 무제한 + 네이티브 메모리 누수
  • RSS 734MB~4085MB 사이를 분 단위로 진동
  • 새 프로세스도 시작 10초 만에 1.8GB 도달

2차: 44개 서비스 동시 부팅

  • LaunchAgent 69개 중 44개가 RunAtLoad=true
  • 부팅 시 syspolicyd(Apple 보안 검증)가 모든 바이너리를 동시 검증
  • syspolicyd: CPU 120%, RAM 1.6GB 점유

3차: 메모리 총량 초과

  • gateway(2.9GB) + syspolicyd(1.6GB) = 4.5GB
  • 전체 14.3GB/16GB → 여유 1.7GB
  • watchdogd 90초 이상 응답 불가 → 커널 패닉

CRD/Claude 불가 원인

  • CRD 프로세스는 정상(Google 서버 연결). 시스템 자체가 먹통이라 화면 불응답
  • Claude: 4/11 커널 패닉 직후 메모리 압박으로 크래시 (10:43)
  • Codex: 디스크 I/O 초과(40분 2.1GB)로 macOS 강제 종료

적용 조치

1. gateway NODE_OPTIONS 힙 제한

  • plist에 NODE_OPTIONS=--max-old-space-size=512 추가
  • 효과 제한적: 네이티브 메모리는 제한 못 함

2. staged-boot 시차 기동

  • 42개 plist RunAtLoad=false
  • 마스터 런처가 5그룹 시차 기동 (2분 분산)
  • 부팅 동시 시작: 44개 → staged-boot + memory-guardian 2개만

3. memory-guardian 활성화

  • gateway 임계 5GB → 2GB 하향
  • 매분 체크, 초과 시 자동 재시작
  • 실제 작동 확인: 14:21 4085MB 감지 → 자동 kickstart

4. 추가 발견 (Codex)

  • quarantine/서명 불량 바이너리: claude, docker, kubectl, ollama, obsidian-cli
  • 이것들이 syspolicyd 검증 시간을 더 늘림
  • brew reinstall로 서명 정상화 가능

재발 방지 평가

  • staged-boot: 부팅 시 커널 패닉 ✅ 방지
  • memory-guardian: 운영 중 gateway 폭주 ✅ 방지 (검증됨)
  • gateway 코드 수정: 미완 (장기 과제)
  • quarantine 정리: 미완 (보조 조치)

백업 위치

  • ~/.openclaw/backups/launchagents_20260412_141023/ (66개 plist)

되돌리기

cp ~/.openclaw/backups/launchagents_20260412_141023/*.plist ~/Library/LaunchAgents/