-
-
Notifications
You must be signed in to change notification settings - Fork 11
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
Windows agents are soooooooooo slooooooooooooooooooow #3117
Comments
It feels like you get a lucky shot for incrementals, if you build at peak times. |
I think the Windows builds have been very slow since I re-enabled them in jenkinsci/jenkins#6024. I am not sure if throwing more hardware resources at the problem would necessarily improve performance. I seem to recall a Jira ticket being open about one possible cause: the creation and subsequent deletion of a fresh Jenkins home directory for each test (which involves extracting many Flakiness could be mitigated in the short term by adding e.g. Perhaps we ought to declare that we are not getting much value from Windows testing and reduce its scope to just those tests in the |
Another alternative might be to do incrementals deployment once one (or both) of the Linux builds passed, so we don't wait for the slower Windows build to finish? While we'd want Windows coverage before merging, I would expect it to be a rare occurrence that we actively have to wait for builds to finish; while waiting for an incrementals deployment is probably more common? Of course, the use case of integrated core + plugin PRs also isn't that common… Might need a careful look at incrementals validation to see whether this is even doable. |
random thought. I believe on windows server that disk write caching is disabled by default (it is enabled by default on client OSes). If we are using ephemeral machines then if it is disabled, enabling it may well help a bit. (I know Jenkins startup is slower on windows than linux for the same hardware - but not normally by the factor that is observed in this ticket). There are 2 options write caching, and write-cache buffer flushing. the latter option may also help (but depending on the drive it could hinder). |
Is this really the case? I think the |
The infra team tends to avoid changing the Your suggestion seems actionnable still: if I understand correctly the scope is to use make sure that failed Windows test suites are retried until the root cause is identified is correct. Is my understanding correct? |
Interesting. If I understand correctly, this would be a Windows setting? Since we customize the VM images, that should be easy to do in https://github.com/jenkins-infra/packer-images/blob/main/provisioning/windows-provision.ps1 ? Or is it a cloud-related to setup in the VM definition (e.g. in EC2 and Azure-VM plugin setups) ? |
https://github.com/jenkins-infra/pipeline-library/commits?author=dduportal ? |
I'm not sure to understand, could you clarify? I'm not saying that infra team is not going to take care of that. So I'm asking for clarification because I'm not as skilled as you or other contributors so I need help to understand what has to be done if you want me or the team to do it. |
I do not see a substantial difference between working on |
I have removed this issue from the |
@basil I think I understand what you are saying, but please, can you let the infrastructure team manage their milestones, as it helps us to track our work in a consensual way. For info, we do the milestone changes during the weekly meeting (which did not happen this week due to devopsworld). |
As I wrote previously, if the infrastructure team does not consent to doing this work, please move this ticket to an issue tracking component used by the development team. |
I've never implied that. We are happy to take this task, we'll plan it on our next infra meeting to work it when we'll be able to. |
Still need to determine whether write caching is enabled or disabled and enable it if necessary. |
Quick update: jenkins-infra/jenkins-infra#2635 changes the type of disk used by the VM instances (NOT Windows container!) from HDD to premium SSD. It could be interesting to check the difference once deployed. |
@dduportal Should a ci.j.io build from today show this change? https://ci.jenkins.io/blue/organizations/jenkins/Core%2Fjenkins/detail/PR-7669/1/pipeline/146 still took 5 hrs to build on Windows, compared to 1.5 hrs on Linux. |
|
Another example that's a bit simpler than core: Over 3x slower on Windows |
it looks like it also running on an ACI container, for now we have only improved the windows VM. We will have a look on those ACI soon. |
Service(s)
ci.jenkins.io
Summary
Looking through some successful builds in https://ci.jenkins.io/blue/organizations/jenkins/Core%2Fjenkins/activity I see wildly different build durations per platform:
https://ci.jenkins.io/blue/organizations/jenkins/Core%2Fjenkins/detail/PR-7050/2/pipeline
https://ci.jenkins.io/blue/organizations/jenkins/Core%2Fjenkins/detail/PR-7047/3/pipeline
https://ci.jenkins.io/blue/organizations/jenkins/Core%2Fjenkins/detail/PR-7054/1/pipeline
https://ci.jenkins.io/blue/organizations/jenkins/Core%2Fjenkins/detail/master/4002/pipeline
Waiting six hours (almost a work day) to get an incrementals deployment seems too long, especially when Linux builds are reliably done in two hours, sometimes less.
Reproduction steps
No response
The text was updated successfully, but these errors were encountered: