Skip to content

[DRAFT/DO NOT MERGE] Disk throughput probe: old pool vs NVMe pool - #179

Draft
David Engel (David-Engel) wants to merge 5 commits into
mainfrom
david/disk-throughput-probe
Draft

[DRAFT/DO NOT MERGE] Disk throughput probe: old pool vs NVMe pool#179
David Engel (David-Engel) wants to merge 5 commits into
mainfrom
david/disk-throughput-probe

Conversation

@David-Engel

Copy link
Copy Markdown
Contributor

Purpose (temporary diagnostic)

Investigating why the Windows build got ~slower on the new NVMe 1ES pool while Linux got faster. This PR temporarily hijacks .pipeline/validation-pipeline.yml to run 4 short jobs that measure raw disk throughput where the agent work folder lives, comparing the old and new pools head-to-head.

Jobs

Job Pool Image
WindowsOld RUST-1ES-POOL-WUS3 RUST-Win22-Sql25-1P
WindowsNvme RUST-1ES-POOL-WUS3-NVME RUST-Win22-Sql25-1P-NVME
LinuxOld RUST-1ES-POOL-WUS3 RUST-1ES-UBUSLIM
LinuxNvme RUST-1ES-POOL-WUS3-NVME RUST-1ES-UBUSLIM-NVME

Method

  • Windows: Microsoft diskspd with -Sh (software + hardware cache bypass).
  • Linux: fio --direct=1 (O_DIRECT, bypasses page cache).
  • Both target the agent work folder and report the backing physical disk (BusType / rotational / transport), then run: sequential write/read (1M), random read/write (4K), and mixed random 64K (30% write) — patterns representative of a Rust build.
  • Each scenario emits a RESULT|<label>|<scenario>|<MB/s>|<IOPS> line for easy comparison.

Notes

  • Do not merge. validation-pipeline.yml is hijacked; the original entry point is preserved as comments and must be restored before this branch could ever merge.
  • Assumes the old pool/images still exist. If they've been deleted, the *Old jobs will fail to find agents.

…pool)

Temporary diagnostic to explain the slower Windows build on the NVMe pool.
Replaces the validation stages with 4 short jobs (Windows old/new, Linux
old/new) that run cache-bypass disk benchmarks where the agent work folder
lives (diskspd -Sh on Windows, fio --direct=1 on Linux) and report
sequential + random MB/s and IOPS. Original entry point preserved as comments.
DO NOT MERGE.
- Windows: run diskspd with ErrorActionPreference=Continue so its stderr
  warnings don't abort the job; use single-thread sequential to avoid the
  non-sequential warning. Publish a per-job markdown summary (uploadsummary).
- Linux: accumulate results and publish the same per-job markdown summary.
…armth

Adds agent diagnostics to both disk-probe scripts to test the two remaining
hypotheses for the slower Windows build on NVMe: CPU/SKU difference and cold
cargo/registry caches on the fresh ephemeral image.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant