diff --git a/docs/WINDOWS-TESTING.md b/docs/WINDOWS-TESTING.md index 52740db..d48250d 100644 --- a/docs/WINDOWS-TESTING.md +++ b/docs/WINDOWS-TESTING.md @@ -93,7 +93,57 @@ lspci | grep -i vga # GPU가 몇 장 꽂혀 있나 dmidecode -t slot | grep -i "in use" # 빈 PCIe 슬롯이 있나 ``` -### Proxmox에 Windows VM 만들기 +### 선택지 A — `.9` 안에 Windows VM (중첩 가상화) + +Proxmox를 건드리지 않고 `.9`(우분투) 안에서 바로 Windows VM을 돌릴 수 있습니다. +**실제로 확인했습니다.** + +``` +/dev/kvm 존재 +kvm_intel nested Y +qemu -enable-kvm kvm support: enabled ← 실측 +여유 RAM / 디스크 25GB / 294GB +``` + +**가장 큰 장점은 사람 손이 안 간다는 것입니다.** `.9` 안이라 에이전트가 VM +생성부터 러너 등록까지 직접 합니다. Proxmox 자격증명도 필요 없습니다. + +**단, GPU는 여전히 안 됩니다.** 중첩 패스스루가 불가능합니다. + +``` +IOMMU 그룹 수 0개 +커널 cmdline iommu 옵션 없음 +``` + +되게 하려면 Proxmox가 `.9`에 vIOMMU를 열어주고 `.9` 커널에 `intel_iommu=on`을 +넣은 뒤 GPU를 `vfio-pci`에 묶어야 하는데, 그러면 **`.9`가 GPU를 잃습니다.** +결국 "GPU를 누가 가질 것인가" 문제로 되돌아오므로 중첩으로는 해결되지 않습니다. + +#### ⚠️ 메모리 cgroup 함정 — 반드시 `systemd-run --scope` + +에이전트 턴에서 그냥 `qemu`를 띄우면 VM이 **봇의 cgroup 안에서** 돕니다. +`ejclaw.service`는 `MemoryHigh=16G`이고 평상시 5G를 쓰므로, 8G짜리 VM이 +그 안에 들어가면 상한에 부딪혀 봇이 OOM으로 죽습니다(전례 있음). + +```bash +# 봇 cgroup 밖(app.slice 형제)에 VM 을 띄운다 — 실측으로 확인됨 +systemd-run --user --scope -p MemoryMax=10G --unit win-ci qemu-system-x86_64 -enable-kvm -m 8192 ... +``` + +#### A vs B 비교 + +| | A: `.9` 안 중첩 VM | B: Proxmox VM | +|---|---|---| +| 만드는 사람 | **에이전트가 직접** | 사용자 | +| GPU | ❌ | ❌ (별도 GPU 추가 시 ⭕) | +| 속도 | 중첩이라 다소 느림 | 네이티브 | +| `.9` 재부팅 시 | 같이 죽음 | 영향 없음 | +| RAM | `.9`의 30GB를 나눠 씀 | 독립 | + +CI는 타임아웃이 30분인데 파이프라인이 27초라 속도 여유가 충분합니다. +**먼저 A로 띄워보고, 부족하면 B로 옮기는 편을 권합니다.** + +### 선택지 B — Proxmox에 Windows VM 만들기 ```bash # Proxmox 호스트에서 (VMID 는 비어 있는 번호로)