Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI: use a Dev Drive to improve Windows I/O performance #13123

Closed
wants to merge 1 commit into from

Conversation

ichard26
Copy link
Member

I was reading actions/runner-images#8755 when I saw that the uv project has switched to using a Dev Drive for better Windows CI performance: astral-sh/uv#3522

It turns out that there is a community action (https://github.com/samypr100/setup-dev-drive) that can set up a Dev Drive for us, but the Powershell script needed for our simple needs is really not that bad. I'd prefer keeping the implementation local instead of depending on yet another 3rd party action.

@ichard26 ichard26 added skip news Does not need a NEWS file entry (eg: trivial changes) C: automation Automated checks, CI etc labels Dec 22, 2024
@ichard26 ichard26 force-pushed the devdrive branch 3 times, most recently from 3326d1c to be02015 Compare December 22, 2024 01:39
@notatallshaw
Copy link
Member

notatallshaw commented Dec 22, 2024

Related issue (but not identical): #12055

@ichard26 ichard26 force-pushed the devdrive branch 10 times, most recently from cad5bd9 to 6ee4068 Compare December 22, 2024 02:41
Dev Drives are a modern Windows feature based on the ReFS file system
which offers significantly better performance for developer-focused
workloads. This is perfect for pip's Windows CI which is still slower
than the Unix jobs.

Most of the implementation was borrowed from the uv project which also
uses a Dev Drive to improve their Windows CI times. There is a community
action (samypr100/setup-dev-drive) that can set up a Dev Drive for us,
but the Powershell script needed for our simple needs is really not that
bad. The small maintenance burden of doing it ourselves is perferable
over the risks of using yet another 3rd party action.

NB: We used to use a RAM disk to improve I/O performance, but the creation
of the RAM disk started to fail intermittently, annoying everyone and
eliminating any speed ups gained by the constant retrying needed.

See also: https://learn.microsoft.com/en-us/windows/dev-drive/
@ichard26
Copy link
Member Author

Sigh, it doesn't seem like the Dev Drive is giving us any sort of speed up. The four Windows jobs durations are on par with the runtimes we've gotten lately 🙁

@zooba am I missing anything obvious? I thought pip's test suite had massive gains on a ReFS disk / Dev Drive in your testing. Maybe I should use the 3rd party action as that should be a known good solution, and then work backwards to fix my custom set up.

@ichard26
Copy link
Member Author

Maybe I should use the 3rd party action as that should be a known good solution, and then work backwards to fix my custom set up.

So I tried that and it didn't do anything to improve the times: https://github.com/ichard26/pip/actions/runs/12450861807

I think this idea is dead.

@ichard26
Copy link
Member Author

I also tried using the Windows 2025 image as they support Dev Drives (and not just ReFS) but that also didn't help. This is frustrating, but it's time to move on.

@ichard26 ichard26 closed this Dec 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C: automation Automated checks, CI etc skip news Does not need a NEWS file entry (eg: trivial changes)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants