OpenClaw 사용자는 채팅 지연으로 제품을 판단하고 로드맵은 장기 워크스페이스 자동화 처리량으로 판단합니다. 둘 다 단일 Mac mini M4 게이트웨이를 공유하면 실패는 예측 가능: 저장소 전체 인덱스 재구축이나 수분짜리 도구 체인이 모든 코어를 잡아먹고 Slack 응답이 수백 ms에서 수십 초로 튑니다. 2026년에는 동시성 매트릭스를 공개해 뮤텍스 슬롯, 취소 의미, 별도 SLO 등급을 명명한 뒤 메트릭으로 강제하세요.
관련 제어: 게이트웨이 인증 및 도구 속도 제한, launchd 예약 작업 정렬, 준비성 프로브와 SLO. 같은 호스트에서 CI도 돌리면 CI 동시성 공정성을 읽으세요. 가격; 도움말; 비상은 VNC.
두 트래픽 클래스, 두 예산
대화형 채팅은 지연에 민감하고 보통 페이로드가 작습니다. 장기 워크스페이스 작업은 처리량에 민감하며 하위 프로세스 트리, 큰 디스크 IO, 반복 LLM 호출을 낳을 수 있습니다. “한 팀”이 소유해도 단일 OS 안에서는 경쟁 테넌트로 취급하세요—커널은 조직도를 모릅니다.
- 대화형: 스케줄링 공정성을 우선하고 사용자에게 보이는 큐 깊이를 제한.
- 장기 실행: 백프레셔와 취소를 우선; 무한 재시도 루프 금지.
- 하이브리드 명령: 라우터가 올바른 예산을 고르도록 명시 라벨.
동시성 매트릭스
| 워크로드 | 기본 슬롯 정책 | 사용자 가시 위험 |
|---|---|---|
| 가벼운 도구 호출이 있는 DM 응답 | 항상 켜진 예약 슬롯 | p95 > ~3s이면 “봇 다운”으로 느껴짐 |
| 야간 모노레포 문서 재빌드 | 유계 병렬 워커 + git 뮤텍스 | 뮤텍스 없으면 채팅 기아 |
| 사람이 촉발한 “lint 전부 수정” 쓰나미 | 가시 위치가 있는 큐 + 취소 | 협력적이지 않은 취소는 중복 편집 유발 |
취소와 협력적 타임아웃
취소 버튼이 부모 코루틴만 멈추고 자식 xcodebuild가 계속 돌면 취소 없음보다 나쁩니다—부분 쓰기를 만듭니다. 표준화: 취소 토큰 전파, 가능한 프로세스 그룹, 도구 클래스별 절대 벽시계 상한과 강제 종료 시 감사 로그.
| 도구 패밀리 | 소프트 타임아웃 | 하드 킬 |
|---|---|---|
| HTTP JSON API | 클라이언트 읽기 30초 | 절대 90초 |
| 로컬 컴파일 / 테스트 | 60초마다 진행 이벤트 | 티켓 예외 없으면 45분 상한 |
| 디스크 집약 동기화 | IO 처리량 바닥 알람 | 운영자 취소 + 체크섬 검증 |
운영자 노트: 무거운 작업에 캘린더 지터를 주어 매일 스탠드업 메시지 버스트와 맞물리지 않게—단순하고 효과적입니다.
여덟 가지 롤아웃 단계
- 계측: 채팅 p95와 작업 완료 시간을 분리.
- 뮤텍스 정의: git, 패키지 매니저, 시뮬레이터 부트 주변.
- 슬롯 예약: 게이트웨이 호스트마다 대화 트래픽용.
- 대시보드 연결: 큐 깊이와 취소 성공률.
- 문서화: 운영 README에서 “무거운” 명령을 나열.
- 부하 테스트: 채팅 버스트와 예약 작업 혼합.
- 호스트 분할: 지표가 지속 경쟁을 보이면 두 번째 NodeMac Mac mini M4 추가.
- 사후 검토: 초과된 예산 범주를 반드시 인용.
FAQ
야간 작업 중에만 채팅이 느린 이유는?
공유 CPU, IO, 도구 동시성 한도. 대화 슬롯 예약 및 병렬 장기 작업 제한.
게이트웨이 프로세스 하나 둘?
프로덕션은 격리 또는 엄격한 뮤텍스 계층; 제한 없는 공유는 꼬리 지연 스파이크.
NodeMac이 돕는 방법은?
역할/리전별 전용 M4, SSH 자동화, 선택적 VNC—채팅과 배치를 호스트로 분리.