Phase B is closed (checklist Passi 1–9 [x], benchmark matrix §6–§14 recorded). Move the two finished working docs into the dated archive: plans/PhaseB-user-checklist.md → plans/archived/2026-06-07/ plans/benchmark-windows-host.md → plans/archived/2026-06-07/ plans/ now holds only the forward-looking plans (idea-3 Phase C pwsh removal, idea-4 Phase D ESXi, ideas-overview). Fixed the live links that pointed at the moved/relocated files: idea-3 §4, idea-2 §8 (relative path), and ideas-overview (idea-1/idea-2 now under archived/, Phase A+B marked ✅). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
6.9 KiB
Plan — Windows-host benchmarks (comparable to Linux-host §6–§10)
Scopo: la macchina è dual-boot (Windows ⇄ Linux, stesso hardware). Le baseline RUNBOOK §6–§10 sono quasi tutte sul Linux host. Questo plan raccoglie i numeri mancanti sul Windows host per chiudere la matrice host × guest × IP-mode e rendere il confronto Linux-vs-Windows completo e simmetrico.
Prerequisito: riavviare la macchina nel boot entry Windows. Tutto gira su Windows PowerShell 5.1 o pwsh 7; usare la stessa
Measure-CIBenchmark.ps1/Test-CapacityBurnIn.ps1del repo (sono cross-platform, i default path passano aF:\CI\...quando$IsWindows).
1. Cosa esiste già e cosa manca
| RUNBOOK § | Host | Guest | IP mode | Stato |
|---|---|---|---|---|
| §6 | Win | WinBuild2025 | DHCP | ✓ 2026-05-17 |
| §7 | Linux | WinBuild2025 | DHCP | ✓ |
| §8 | Linux | WinBuild2025 | static | ✓ |
| §9 | Linux | Win + Linux | burn-in (static pool) | ✓ |
| §10 | Linux | LinuxBuild2404 | DHCP | ✓ |
Mancanti sul Windows host (target di questo plan):
| Nuovo § | Host | Guest | IP mode | Pair-with |
|---|---|---|---|---|
| §11 | Win | WinBuild2025 | static | §8 |
| §12 | Win | LinuxBuild2404 | DHCP | §10 |
| §13 | Win | Win + Linux | burn-in 4×10 | §9 |
§6 copre già Win×Win×DHCP. Opzionale: ri-eseguirlo nella stessa sessione per coerenza (stesso disco/fragmentazione del momento).
2. Prerequisiti sul Windows host
- Boot in Windows; verificare VMware Workstation +
vmrun.exeinC:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe. - Template fully powered-off con snapshot integri:
powershell & 'C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe' -T ws listSnapshots 'F:\CI\Templates\WinBuild2025\WinBuild2025.vmx' & 'C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe' -T ws listSnapshots 'F:\CI\Templates\LinuxBuild2404\LinuxBuild2404.vmx'Attesi:BaseCleaneBaseClean-Linux. ✓ (anchePostInstallsu Win) - Credenziali in Windows Credential Manager (non keyring file):
target
BuildVMGuest(guest WinRM, userci_build) eGiteaPAT(userSimone). Verificato. - Chiave SSH guest Linux presente:
F:\CI\keys\ci_linux(per §12/§13 lato LinuxBuild2404). - Gitea raggiungibile (
http://10.10.20.11:3100, HTTP 200) e repoSimone/burnin-dummyconbuild.ps1+build.sh(verificato via API). F:\CI\BuildVMs\privo di cloni orfani eF:\CI\ip-pool.jsonassente (pulito). Reset se serve:powershell Set-Content -Path 'F:\CI\ip-pool.json' -Value '{}' -NoNewline
3. §11 — WinBuild2025 static IP (pair §8)
.\scripts\Measure-CIBenchmark.ps1 `
-TemplatePath 'F:\CI\Templates\WinBuild2025\WinBuild2025.vmx' `
-SnapshotName BaseClean `
-StaticIP 192.168.79.200 -Netmask 255.255.255.0 `
-Iterations 10
- 10 iter completate, tabella per-fase stampata. Boot total avg 29.75 s.
- Confronto vs §8 (Linux host static): IP-floor confermato host-independent
(22.81 s vs 21.77 s, +5 %). Penalità host: clone +58 % (NTFS), Ready +4.7 s
(WinRM re-bind dopo NIC reconfig), destroy +82 % (bimodale), boot +24 %.
Vedi RUNBOOK §11. Nota: primo tentativo fallito (timeout 300 s/iter) —
template Windows privo dell'agent
ci-static-ip; risolto copiando i template dal Linux host (parità template).
4. §12 — LinuxBuild2404 DHCP (pair §10)
.\scripts\Measure-CIBenchmark.ps1 `
-TemplatePath 'F:\CI\Templates\LinuxBuild2404\LinuxBuild2404.vmx' `
-SnapshotName BaseClean-Linux `
-GuestOS Linux `
-Iterations 10
- 10 iter completate. Boot total avg 13.51 s.
- Confronto vs §10 (Linux host, 8.82 s): +53 % host-side — clone +191 % (NTFS), IP-acquire +52 % (NAT vmnet8 Windows + guestinfo). Guest Linux resta deterministico (IP σ ≈ 0.05 s). Vedi RUNBOOK §12.
5. §13 — Concurrent burn-in 4×10 (pair §9)
# WinBuild2025
.\scripts\Test-CapacityBurnIn.ps1 `
-Parallelism 4 -Rounds 10 `
-TemplatePath 'F:\CI\Templates\WinBuild2025\WinBuild2025.vmx' `
-RepoUrl 'http://10.10.20.11:3100/Simone/burnin-dummy.git' `
-CloneBaseDir 'F:\CI\BuildVMs\' `
-ArtifactBaseDir 'F:\CI\Artifacts\' `
-VmrunPath 'C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe' `
-BuildCommand 'powershell -ExecutionPolicy Bypass -File .\build.ps1'
# LinuxBuild2404 (snapshot OBBLIGATORIO, default è BaseClean=Windows)
.\scripts\Test-CapacityBurnIn.ps1 `
-Parallelism 4 -Rounds 10 `
-TemplatePath 'F:\CI\Templates\LinuxBuild2404\LinuxBuild2404.vmx' `
-SnapshotName BaseClean-Linux `
-RepoUrl 'http://10.10.20.11:3100/Simone/burnin-dummy.git' `
-CloneBaseDir 'F:\CI\BuildVMs\' `
-ArtifactBaseDir 'F:\CI\Artifacts\' `
-VmrunPath 'C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe' `
-GuestOS Linux `
-BuildCommand 'bash build.sh'
- [~] Linux 40/40 PASS (10/10 round). Windows 36/40 (7/10 round). I 4 fail Windows = fault WinRM transitori (round 6–8: connect-timeout 5986 + WSManFault "shell not found") sotto 4× concorrenza; auto-recuperati (slot IP rilasciati, 0 cloni orfani, round 9–10 di nuovo puliti). Linux/SSH 0 fault.
- Round avg vs §9 (Win ~78.6 s, Lin ~70.2 s): Windows host Win ~91.6 s
(round PASS) +16 % + instabilità WinRM; Lin 96.4 s +37 %.
Vedi RUNBOOK §13. Pre-req scoperti: (1) parità template, (2) prod venv
F:\CI\python\venv stale (pre-
ip_pool) → reinstallatopip install ., (3)CI_VENV_PYTHONda settare (bug shim$IsWindowssu PS 5.1+StrictMode).
6. Output e documentazione
- Tutti i run appendono a
F:\CI\Logs\benchmark.jsonl(single-job) e stampano summary (burn-in). - Risultati aggiunti a
docs/RUNBOOK.md§11–§13 (+ §14 matrice completa), con confronto host Linux-vs-Windows per ciascuna coppia. - Pulizia post-run:
F:\CI\BuildVMs\vuoto, artifactburnin-*rimossi,F:\CI\ip-pool.jsonreset.
7. Matrice finale attesa (dopo questo plan)
| Host \ (Guest, mode) | Win/DHCP | Win/static | Lin/DHCP | burn-in 4×10 |
|---|---|---|---|---|
| Linux | §7 | §8 | §10 | §9 |
| Windows | §6 | §11 | §12 | §13 |
Confronto colonna-per-colonna = effetto host a guest+mode costanti. Confronto riga-per-riga = effetto guest/IP-mode a host costante.