크라우니 상태관제 crownystate v2 — CPU·메모리 관제 기본도구 승격 (2026-07-09)
개요
"클로드 세션 돌리는데 컴퓨터가 힘들어함" → 기존 sysguard(2026-06-10) 점검 결과
census 오탐·정리 무력·위험 로직을 발견, v2로 전면 재설계하고
크라우니 생태계 기본도구 crownystate(Crowny State Management) 로 승격. 메모리 관제(클로드 세션별 식별·clangd 정리) 추가. 윈도우 지원.
발견한 문제 (v1 실측)
| 문제 | 실체 |
|---|
| 좀비 36개 오보 | census가 basename 집계 → 서로 다른 서비스 29개(서비스공장 포트별)를 "중복"으로 오판. 정리는 full-path 기준이라 영원히 "좀비 잔존" 보고 |
| 정리 로직 위험 | "같은 .toau는 1개만 남기고 kill" — 포트별 멀티인스턴스(서비스서버×29)·REUSEPORT 워커풀을 학살하는 설계 (gwlive 사건과 동근원) |
| 진짜 폭주 방치 | 브레인정리rpn 2일 95%·slm_서버 고아 4일 95% — 단독 인스턴스라 정리 대상 밖 |
| 로그 무한증식 | 관제.log 10MB |
| 스왑 폭발 | 스왑 44.4GB/48GB 사용(RAM 32GB) — claude 62세션 RSS 8.7GB + 일주일 묵은 clangd 13개가 스왑 점유 |
v2 재설계 (원칙: 같은 .toau N개 ≠ 중복)
- 판별식: busy-spin 좀비 = 중복그룹 중 비LISTEN + 60초 경과 (정상 서버는 반드시 LISTEN). 보존 = LISTEN 보유분 우선, 없으면 최古.
- 고아 폭주 = ppid==1 + CPU 80%+ + 12h+ + 비LISTEN → 종료 (활성 세션 배치작업은 ppid=셸이라 보호).
- 묵은 clangd(Claude Code C/C++ LSP 헬퍼) 24h+ → 종료 (필요 시 자동 재스폰, 스왑 회수). 실측 13개 정리 → 스왑 44.4→41GB.
- basename 그룹핑 (상대경로 실행 좀비 포착) — kill이 LISTEN 기반이라 안전.
- 모든 kill은
/tmp/sg/killed.log 감사기록. 멀티인스턴스예외.txt = kill 금지 목록.
- 로그 로테이션(1MB→200KB), 5분 주기.
메모리 관제 (신규 — 사용자 요청)
- RAM/스왑/메모리압력, claude 세션수·RSS합·유휴 RSS(회수 후보), clangd 수·고아, 회수가능 추정.
- 세션 식별: RSS 상위 20을
pid + tty(터미널 탭 식별) + MB + CPU + 경과 + 작업디렉토리 + 인자 + 유휴 로 표시 — Terminal 타이틀의 ttysNNN과 대조해 어떤 탭이 큰지 바로 확인.
- clangd 정체: Claude Code가 C/C++ 작업 시 띄우는 LSP 서버. 부모 세션이 놀아도 잔존 → 스왑 점유 주범. 죽여도 안전(재스폰).
구조 (판정=한선씨, 측정/액션=OS 글루)
/Users/ef/crowny-sysguard/
├── 자원관제.한선 ← 판정 코어(4상, 포터블 — sg/ 메트릭만 읽음, 뇌 학습됨)
├── 관제 ← macOS 런처 (CROWNY_JIT=1, 로테이션, crownystate 심링크)
├── 수집.sh ← macOS/Linux 수집기 → /tmp/sg/m_*
├── 정리.sh ← macOS 정리 액션 (LISTEN기반 좀비·고아폭주·clangd)
├── 멀티인스턴스예외.txt ← kill 금지 (gwlive·서비스서버·정적서버)
└── win/ ← 윈도우: 관제.ps1·수집.ps1·정리.ps1·설치.ps1(작업스케줄러 CrownyState)
- 프로세스명:
crownystate (crownyc 심링크 — ps/작업관리자에서 식별). LaunchAgent org.crowny.state 5분 주기(구 org.crowny.sysguard 폐기).
- JIT: crownyc opt-in(CROWNY_JIT) self-test PASS → armed 확인. 런처가 상시 활성.
- 한선씨 구현 상태: 판정·의사결정 100% 한선씨(VM 함정 회피 준수). 측정은 ps/lsof/PowerShell 글루.
복구·정리 실적 (이번 세션)
- 브레인정리rpn(2일 95%)·slm_서버 고아(4일 95%) 제거, clangd 13개 정리, project/chat/모니터링 busy-spin 3개 정리.
- 사고: BSD sed
\b 미지원으로 드라이런이 실킬(서비스서버 28개) → manage.sh 데몬+수동 start로 즉시 전체 복구(✓). 교훈 메모리화.
- crownyc 바이너리 교체 순간(다른 세션 23:45 재빌드)의 SIGKILL 즉사 churn 관측 — 교체는 mv 원칙 재확인.
등록
- 뇌 학습:
crownycode-brain.sh learn 상태관제 ✓ (다음부터 토큰0) · 지식셀 #22452 ✓
- 글로벌 CLAUDE.md 인프라 규칙에 기본도구 지정 ✓ · 메모리 feedback_sysguard… ✓
잔여 이슈
- 윈도우 스크립트 미실측 (윈도우 머신 필요): win/ 4종은 작성·구문 검토만. crownyc.exe/hanseonc_high.exe Win32 빌드 선행 필요.
- iCloud 데스크탑/문서 node_modules 114개 — 사용자 조치(iCloud 데스크탑·문서 끄기) 권장, filecoordinationd 재폭주 위험.
- 유휴 claude 세션 5.5GB(10일+ 세션 다수) — 자동 종료는 위험해 리포트만. 사용자가 tty로 탭 찾아 정리 권장.
- v1의 launchd 정리 무동작 미스터리(수동 실행은 kill됨) — v2에서 로직 자체가 안전해져 무해화, 원인 미규명.