Files
local-ci-cd-system/plans/benchmark-windows-host.md
T
Simone 66cdd4866f docs(benchmark): record Windows-host §11–§14 + plan closeout
§11 Win-guest static (boot 29.75s, +24% vs Linux-host §8; static-IP floor
~22s confirmed host-independent), §12 Lin-guest DHCP (13.51s, +53%), §13
burn-in 4×10 (Win 36/40 — transient WinRM faults under 4× concurrency,
self-recovered; Lin 40/40). §14 adds the full host×guest×IP-mode matrix.
Plan checkboxes filled with results and the template-parity pre-req note.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 14:06:13 +02:00

6.9 KiB
Raw Blame History

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.ps1 del repo (sono cross-platform, i default path passano a F:\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.exe in C:\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: BaseClean e BaseClean-Linux. ✓ (anche PostInstall su Win)
  • Credenziali in Windows Credential Manager (non keyring file): target BuildVMGuest (guest WinRM, user ci_build) e GiteaPAT (user Simone). 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 repo Simone/burnin-dummy con build.ps1 + build.sh (verificato via API).
  • F:\CI\BuildVMs\ privo di cloni orfani e F:\CI\ip-pool.json assente (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 68: connect-timeout 5986 + WSManFault "shell not found") sotto 4× concorrenza; auto-recuperati (slot IP rilasciati, 0 cloni orfani, round 910 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) → reinstallato pip install ., (3) CI_VENV_PYTHON da settare (bug shim $IsWindows su 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, artifact burnin-* rimossi, F:\CI\ip-pool.json reset.

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.