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>
This commit is contained in:
@@ -15,21 +15,21 @@
|
||||
|
||||
## 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 | ✓ |
|
||||
| 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 |
|
||||
| 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).
|
||||
@@ -38,24 +38,23 @@ coerenza (stesso disco/fragmentazione del momento).
|
||||
|
||||
## 2. Prerequisiti sul Windows host
|
||||
|
||||
- [ ] Boot in Windows; verificare VMware Workstation + `vmrun.exe` in
|
||||
- [x] 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:
|
||||
- [x] 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`.
|
||||
- [ ] Credenziali in **Windows Credential Manager** (non keyring file):
|
||||
target `BuildVMGuest` (guest WinRM) e `GiteaPAT` (clone in-VM).
|
||||
Verifica: `cmdkey /list | findstr /i "BuildVMGuest GiteaPAT"`.
|
||||
- [ ] Chiave SSH guest Linux presente: `F:\CI\keys\ci_linux` (per §12/§13
|
||||
Attesi: `BaseClean` e `BaseClean-Linux`. ✓ (anche `PostInstall` su Win)
|
||||
- [x] Credenziali in **Windows Credential Manager** (non keyring file):
|
||||
target `BuildVMGuest` (guest WinRM, user `ci_build`) e `GiteaPAT`
|
||||
(user `Simone`). Verificato.
|
||||
- [x] Chiave SSH guest Linux presente: `F:\CI\keys\ci_linux` (per §12/§13
|
||||
lato LinuxBuild2404).
|
||||
- [ ] Gitea raggiungibile (`http://10.10.20.11:3100`) e repo
|
||||
`Simone/burnin-dummy` con `build.ps1` + `build.sh` (per §13).
|
||||
- [ ] `F:\CI\BuildVMs\` privo di cloni orfani e `F:\CI\ip-pool.json`
|
||||
(se esiste) pulito — stesso caveat lease stale del Linux host
|
||||
(RUNBOOK §9 / TODO §2.8). Reset se serve:
|
||||
- [x] Gitea raggiungibile (`http://10.10.20.11:3100`, HTTP 200) e repo
|
||||
`Simone/burnin-dummy` con `build.ps1` + `build.sh` (verificato via API).
|
||||
- [x] `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
|
||||
```
|
||||
@@ -71,10 +70,13 @@ coerenza (stesso disco/fragmentazione del momento).
|
||||
-StaticIP 192.168.79.200 -Netmask 255.255.255.0 `
|
||||
-Iterations 10
|
||||
```
|
||||
- [ ] 10 iter completate, tabella per-fase stampata.
|
||||
- [ ] Confronto vs §8 (Linux host static): atteso clone/start simili,
|
||||
IP-acquire dominato da `ci-static-ip.ps1` (~21.8 s floor, indipendente
|
||||
dall'host). Delta host atteso piccolo sulle fasi non-IP.
|
||||
- [x] 10 iter completate, tabella per-fase stampata. **Boot total avg 29.75 s.**
|
||||
- [x] 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)
|
||||
|
||||
@@ -85,10 +87,10 @@ coerenza (stesso disco/fragmentazione del momento).
|
||||
-GuestOS Linux `
|
||||
-Iterations 10
|
||||
```
|
||||
- [ ] 10 iter completate.
|
||||
- [ ] Confronto vs §10 (Linux host, Lin guest DHCP, boot total 8.82 s):
|
||||
isola l'**effetto host** sul guest Linux. Se Win host ≫ 8.82 s,
|
||||
l'overhead è host-side (NTFS / NAT vmnet8 Windows), non guest.
|
||||
- [x] 10 iter completate. **Boot total avg 13.51 s.**
|
||||
- [x] 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)
|
||||
|
||||
@@ -115,9 +117,15 @@ coerenza (stesso disco/fragmentazione del momento).
|
||||
-GuestOS Linux `
|
||||
-BuildCommand 'bash build.sh'
|
||||
```
|
||||
- [ ] Entrambi 40/40 PASS, 10/10 round.
|
||||
- [ ] Round avg vs §9 (Linux host: Win ~78.6 s, Lin ~70.2 s): delta = effetto
|
||||
host sotto concorrenza 4×.
|
||||
- [~] **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.
|
||||
- [x] 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).
|
||||
|
||||
---
|
||||
|
||||
@@ -125,10 +133,9 @@ coerenza (stesso disco/fragmentazione del momento).
|
||||
|
||||
- Tutti i run appendono a `F:\CI\Logs\benchmark.jsonl` (single-job) e
|
||||
stampano summary (burn-in).
|
||||
- [ ] Copiare/annotare i risultati e aggiungere a `docs/RUNBOOK.md` le
|
||||
sezioni **§11–§13** con le stesse tabelle di §8/§9/§10 e una riga
|
||||
finale di **confronto host Linux-vs-Windows** per ciascuna coppia.
|
||||
- [ ] Pulizia post-run: `F:\CI\BuildVMs\` vuoto, artifact `burnin-*`
|
||||
- [x] Risultati aggiunti a `docs/RUNBOOK.md` §11–§13 (+ §14 matrice completa),
|
||||
con confronto host Linux-vs-Windows per ciascuna coppia.
|
||||
- [x] Pulizia post-run: `F:\CI\BuildVMs\` vuoto, artifact `burnin-*`
|
||||
rimossi, `F:\CI\ip-pool.json` reset.
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user