크라우니 자원관제(sysguard) — 시스템 자원 폭주 진단·정리 관리도구 (2026-06-10)
개요
fileproviderd 220% 사건에 이어
crownyc run 관리서버.toau가
33개 중복 폭주(각 20% CPU = ~660% 낭비) 발견.
진단·해결 과정을
재사용 가능한 한선씨 관리도구로 격상·구현·영속화.
발견한 폭주 (census 1회로 적발)
| 대상 | 개수 | 원인 |
|---|
관리서버.toau (aimed :9905) | 33 | bind 실패 시 종료 안 하고 busy-spin + 중복 워치독 |
crowny-dex.toau | 5 | 동일 bind-spin + finance 워치독 2중 |
aimed 워치독.sh loop | 2 | LaunchAgent + 수동 nohup 중복 |
finance watchdog.sh | 2 | 중복 기동 |
근본 원인 (공통 패턴)
- 한선씨 서버 bind 미검사:
변수 서버 = TCP대기(포트) 반환값 무검사 → 포트 점유 시 무효 소켓.
동안(1==1){ 클라=TCP수락(서버); 만약(클라>=0){..} } 가 블록 없이 즉시 -1 반복 = busy-spin, 종료 코드 없어 좀비 누적.
(정상 서버는 accept가 블록되어 0% CPU. 그래서 폭주분만 20%+.)
- 중복 워치독: 같은 서버를 동시 재생성 → 좀비 가속.
수정 (근본)
crowny-aimed/관리서버.한선: 만약(서버<0){출력+종료} + accept 연속실패 300회 시 종료(소켓 무효 안전망). → 중복 인스턴스 즉시 종료 검증(2개 띄워 1개만 생존).
crowny-aimed/워치독.sh: 경로 기준 단일 인스턴스 가드(pgrep -f "$SCRIPT loop").
- 즉시정리: 관리서버 33→1, dex 5→1, 중복워치독 정리.
관리도구 (신규 — /Users/ef/crowny-sysguard/)
자원관제.한선 (도구 본체, 한선씨): 수집(ps/lsof)→4상 판정→리포트. 판정·의사결정은 한선씨.
4상: 티=정상 / 옴=관찰 / 타=즉시조치 / 음=측정불가. 종합 위험점수.
점검: 중복 .toau 종류·좀비수·중복워치독 / fileproviderd·filecoordinationd·opendirectoryd CPU / iCloud 데스크탑 node_modules.
VM 함정 회피: 파일존재(항상 -1 버그)·포함(pos0 버그) 미사용 — 읽기+글자수 가드, 부분 비교.
정리.sh (안전 액션): 중복 워치독/인스턴스를 1개만 남기고 종료. 절대 전멸 안 함(LISTEN 보유분 또는 최古 PID 보존). 합성 중복 3→1 테스트 통과.
관제 (런처): 컴파일+실행 글루. ./관제(진단) / ./관제 정리(진단+정리).
org.crowny.sysguard.plist (LaunchAgent): 5분 주기 자동 진단+안전정리, 로그 /tmp/sg/관제.log.사용
bashcd /Users/ef/crowny-sysguard && ./관제 # 진단
./관제 정리 # 진단 + 자동정리
잔여 이슈 (사용자 조치)
filecoordinationd 100~149% 지속 — 데스크탑 잔존 node_modules 58개(iCloud 동기화)가 파일 coordination 유발 추정.
→ ①
sudo killall filecoordinationd 1회 ②
시스템 설정 > iCloud > "데스크탑·문서 폴더" 끄기(근본).
crowny-dex.toau 자체 크래시-루프 의심(finance 워치독이 복구 중) — dex 서버에도 관리서버와 같은 bind-exit 수정 필요(후속).
- 워치독 단일가드는 pgrep 기반이라 동시기동 레이스에 약함 — 원자적 mkdir 락으로 고도화 권장(후속).
- 다른 크라우니 한선씨 서버 전반에 같은 bind-미검사 패턴 잔존 가능 → 서버 템플릿 일괄 수정이 진짜 근본(후속 워크플로우).