AGENT SKILL

nvx-collect-benchmarks

Collect fresh NVX benchmark results on a prepared Linux/KVM, Linux/MSHV, or Windows/WHP host with the smoke, CI-equivalent, or canonical profile. Use for acceptance runs, performance suites, p50 collection, benchmark artifacts, and same-host performance comparisons.

License 许可
MIT
所属仓库
microsoft/nvx
最近更新
2026-11-15
Stars
★ 841
Forks
59

01 前言 Front Matter

name
nvx-collect-benchmarks
description
Collect fresh NVX benchmark results on a prepared Linux/KVM, Linux/MSHV, or Windows/WHP host with the smoke, CI-equivalent, or canonical profile. Use for acceptance runs, performance suites, p50 collection, benchmark artifacts, and same-host performance comparisons.
argument-hint
[local|host-profile] [kvm|mshv|whp] [smoke|ci|canonical]

03 SKILL.md 正文

Collect NVX Benchmarks

Commands use python3; use python on Windows.

  1. Prepare the host with nvx-prepare-host, and reuse its checkout, backend, revision, artifacts, and host_type. For a local run, ask whether the host is baremetal or virtual-machine unless the user said so; never infer it from probes.

  2. Choose one profile, and name it in the report:

    • smoke checks that the suites work; never persist, gate, or compare it.
    • ci reproduces CI's sampling, which the tool reads from the measured revision's run-benchmark with PyYAML, which scripts/setup/azure/requirements.txt installs.
    • canonical is the manual baseline of Benchmark; add --with-multi-vcpu for CI's restore runs at 2, 4, and 8 vCPUs.

    Compare results only between runs of the same profile on the same host.

  3. Measure on a quiet, idle host with a stable power mode and a release OpenVMM, with nothing else running. Run this checkout's coordinator against the prepared checkout, which may predate it, and which provides the scripts/nvx.py that measures. Locally:

    python3 scripts/benchmark_series.py --repo CHECKOUT --profile PROFILE --backend BACKEND --host-type HOST_TYPE
    

    On a remote host, nvx_hosts.py runs it there over one SSH connection, whose loss ends the run:

    python3 scripts/nvx_hosts.py benchmark HOST --cwd CHECKOUT -- --profile PROFILE --backend BACKEND --host-type HOST_TYPE
    

    --dry-run prints the plan. The tool refuses to start while an OpenVMM process runs; writes a fresh data/runs/manual/<run>-<platform> directory in the measured checkout; runs acceptance first and stops when it fails; validates each attempt and remeasures an unstable one once, as CI does; collects the p50 CSV files and summary.md; checks the result set and its host provenance; and prints NVX_RESULTS=<directory>.

  4. When acceptance fails, keep its output and debug it with nvx-run-microvm; never collect performance data from a failing host.

  5. Inspect a local result directory in place. From a remote host, copy only that fresh directory with the user's scp or sftp, quoting both paths, and check the path's spelling with sftp on Windows OpenSSH, whose drive letters depend on the server's root. Never copy the checkout or credential files, and keep the remote copy unless the user asks to remove it.

Report

Report local or SSH execution, the host, host type, profile, platform, backend, commit, dirty state, artifact source, host conditions, the exact command and its exit status, the summary's results, and the local and remote result paths. Name every skipped metric, changed option, privilege limitation, and interrupted run.

04 同仓库更多 Skills

microsoft
microsoft/nvx

nvx-triage-ci-run

Triage a failed, cancelled, or hanging microsoft/nvx GitHub Actions run: classify supersession and queueing, find the first causal failure for the exact head, reproduce it on the matching platform, and fix it locally without committing. Use for workflow run URLs or IDs, red pull-request checks, runner, matrix, and artifact-handoff failures, and performance-gate or benchmark-host failures.

★ 841
microsoft
microsoft/nvx

nvx-run-microvm

Boot an NVX microVM with nvx-rs on Linux/KVM, Linux/MSHV, or Windows/WHP, exercise the guest, and debug failed boots. Use for boot smoke tests, guest shell sessions, virtio-fs mounts, networking, kernel command lines, missing boot markers, OpenVMM errors, guest hangs, and benchmark acceptance failures.

开发工程师
★ 841
microsoft
microsoft/nvx

nvx-rebase-openvmm-chain

Rebase or reorganize the OpenVMM microVM chain onto the latest upstream main as a new feature/microvm/release branch, validate and publish it, pin it in NVX with a remapped roadmap, and land it. Use for microVM release rebases and reorganizations, chain commits that upstream landed, rebase conflicts and fixups, and the release landing order.

★ 841
microsoft
microsoft/nvx

nvx-promote-openvmm-pin

Pin a reviewed OpenVMM revision in NVX: verify its provenance and signature, commit the gitlink and the OpenVMM roadmap mapping, validate the exact pin, and land the OpenVMM pull request by fast-forward. Use for OpenVMM pin updates, clean replacement pull requests, source-equivalence checks, and mapping new chain commits in the OpenVMM upstream roadmap.

产品经理
★ 841
microsoft
microsoft/nvx

nvx-prepare-host

Prepare a local host or a configured SSH host for NVX work: resolve its profile, probe its KVM, MSHV, or WHP backend and checkout, check out the requested revision in a temporary worktree, and stage nvx-rs and the artifacts. Use before running, debugging, or benchmarking NVX on a host, or to diagnose a host's prerequisites.

★ 841
microsoft
microsoft/nvx

nvx-fix-issue

Fix one microsoft/nvx issue end to end: reproduce it on the configured hosts, commit signed fixes, open a Ready pull request against dev, and drive CI and review until only a maintainer's approval remains. Use when invoked with an NVX issue number or URL.

★ 841