Skip to content

extremely slow Network/Disk IO on Windows agent compared to Ubuntu/Mac #260

Open
@jetersen

Description

@jetersen

Description:

actions/runner-images#3577

Ubuntu agents have slightly higher IOPS disk performance configuration. We use install-dotnet.ps1 script for installation provided by DotNet team . The DownloadFile and Extract-Dotnet-Package functions are being slow. We will investigate how to improve performance those functions if we replace DownloadFile -> WebClient and Extract-Dotnet-Package -> 7zip

DownloadFile and Extract-Dotnet-Package are awfully slow. Like 3x slower!

SLOW

Task version:
v1.9.0

Platform:

  • Ubuntu
    macOS
    Windows

Runner type:

  • Hosted
    Self-hosted

Repro steps:
https://github.com/jetersen/dotnet.restore.slow.github.action

Expected behavior:
Faster downloads

Actual behavior:
SLOW downloads

Activity

jetersen

jetersen commented on Jan 17, 2022

@jetersen
Author

It can be fast:

FAST

jetersen

jetersen commented on Jan 17, 2022

@jetersen
Author

Perhaps consider not using dotnet install script or is the option to contribute a fix to dotnet install script?

vsafonkin

vsafonkin commented on Jan 26, 2022

@vsafonkin

Hi @jetersen, we will try to resolve this problem.

PureKrome

PureKrome commented on Aug 3, 2022

@PureKrome
Contributor

Hi Team - any news on this?

e-korolevskii

e-korolevskii commented on Aug 3, 2022

@e-korolevskii
Contributor

Hello @PureKrome,

So far no updates

self-assigned this
on Sep 25, 2023
dsame

dsame commented on Nov 2, 2023

@dsame

The problem is not reproduced anymore.

Based on multiple runs, the action does not take more than 15 seconds.
https://github.com/akv-demo/dotnet.restore.slow.github.action/actions/runs/6729109167

Most probably, the root cause of the problem was an infrastructure issue that has currently been resolved.

In case the problem reoccurs, the solution is to avoid bulk copying to the OS drive, similar to the workaround applied for the same problem in the actions/setup-go: actions/setup-go#393

@jetersen did it help?

jetersen

jetersen commented on Nov 2, 2023

@jetersen
Author

@dsame I do not agree with the assessment that it is not reproducible 😓
Even with cache available Windows Server 2022 is still 20 seconds slower.
Creating the cache is still 1 minute longer than time of Ubuntu when running Windows Server 2022.

So definitely an improvement but I feel like windows can perform better.

image
image

https://github.com/jetersen/dotnet.restore.slow.github.action/actions/runs/6736238225
https://github.com/jetersen/dotnet.restore.slow.github.action/actions/runs/6736262624

jetersen

jetersen commented on Nov 2, 2023

@jetersen
Author

I don't think it is fair to say look it is fixed for the actions/setup-dotnet when we are talking about a simple if check to see if .NET 6 is already available on the actions runner image 😓

Testing with .NET 8 preview shows ubuntu with 7 seconds vs +30 seconds sometime a little less. For actions/setup-dotnet.

https://github.com/jetersen/dotnet.restore.slow.github.action/actions/runs/6736383956/job/18311632176

While this issue remains open: #141 this will definitely not improve 😢

31 remaining items

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    feature requestNew feature or request to improve the current logic

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      Participants

      @dsame@PureKrome@jetersen@Piedone@vsafonkin

      Issue actions

        extremely slow Network/Disk IO on Windows agent compared to Ubuntu/Mac · Issue #260 · actions/setup-dotnet