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

Add ability to use ram disk for jenkins workspace #47746

Merged
merged 9 commits into from
Oct 18, 2019

Conversation

brianseeders
Copy link
Contributor

This work comes after seeing flakiness in builds that is possibly due to resource constraints around disk I/O.

This work puts the Jenkins workspace for our larger build agents into memory, instead of on disk. Elasticsearch is doing the same thing for at least some of their builds.

I have 36 builds of this on my Jenkins sandbox (it's on my sandbox because I needed to schedule it to run hourly) with no failures so far.

I originally tried using GCP local SSDs, but they made less of a difference than I had hoped, and would have been more difficult to fully implement, so I switched to trying in-memory.

The instances we use for functional tests currently have 120GB RAM, so this should work well until we switch to smaller machines or need significant more space for storing files. So far, I have not seen any of the instances come close to running out of memory during a build. The worst I've seen so far was about 40GB free, which is plenty of breathing room.

This should also let us shrink the root volume SSD for the instances, which should bring costs down quite a bit from where they are right now. They are currently 2TB per instance, for more performance.

@brianseeders brianseeders added Team:Operations Team label for Operations Team v8.0.0 Feature:CI Continuous integration v7.5.0 v7.3.2 v6.8.4 v7.4.1 labels Oct 9, 2019
@brianseeders brianseeders requested review from spalger and a team October 9, 2019 18:17
@brianseeders brianseeders self-assigned this Oct 9, 2019
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-operations (Team:Operations)

@brianseeders brianseeders added the release_note:skip Skip the PR/issue when compiling release notes label Oct 9, 2019
Jenkinsfile Outdated Show resolved Hide resolved
@jbudz
Copy link
Member

jbudz commented Oct 9, 2019

Neat - have you seen any performance changes with all RAM?

Jenkinsfile Outdated Show resolved Hide resolved
@brianseeders
Copy link
Contributor Author

Neat - have you seen any performance changes with all RAM?

Unfortunately not... The disk performance was already pretty good because we were using such large disks (2TB). I think the windows of time where it really matters (like if several of the parallel ESes are doing IO-heavy work at the same time) are so short that it ends up not making a big difference overall.

It should let us move from 2TB disks to ~50GB disks though, which should be a pretty good cost difference.

@elasticmachine
Copy link
Contributor

💔 Build Failed

@elasticmachine
Copy link
Contributor

💔 Build Failed

@brianseeders
Copy link
Contributor Author

@elasticmachine merge upstream

@elasticmachine
Copy link
Contributor

💚 Build Succeeded

@brianseeders
Copy link
Contributor Author

@elasticmachine merge upstream

@elasticmachine
Copy link
Contributor

💚 Build Succeeded

Copy link
Contributor

@spalger spalger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@brianseeders
Copy link
Contributor Author

@elasticmachine merge upstream

@elasticmachine
Copy link
Contributor

💔 Build Failed

@brianseeders
Copy link
Contributor Author

@elasticmachine merge upstream

@elasticmachine
Copy link
Contributor

💚 Build Succeeded

@brianseeders
Copy link
Contributor Author

@elasticmachine merge upstream

@elasticmachine
Copy link
Contributor

💚 Build Succeeded

@brianseeders brianseeders merged commit 62b21dd into elastic:master Oct 18, 2019
@brianseeders brianseeders deleted the move-workspace-to-ramdisk branch October 18, 2019 16:13
brianseeders added a commit to brianseeders/kibana that referenced this pull request Oct 18, 2019
* Add ability to use ram disk for jenkins workspace

* Re-combine ciGroup agents

* Address some PR feedback / questions

* Add --preserve-root
brianseeders added a commit to brianseeders/kibana that referenced this pull request Oct 18, 2019
* Add ability to use ram disk for jenkins workspace

* Re-combine ciGroup agents

* Address some PR feedback / questions

* Add --preserve-root
brianseeders added a commit to brianseeders/kibana that referenced this pull request Oct 18, 2019
* Add ability to use ram disk for jenkins workspace

* Re-combine ciGroup agents

* Address some PR feedback / questions

* Add --preserve-root
brianseeders added a commit to brianseeders/kibana that referenced this pull request Oct 18, 2019
* Add ability to use ram disk for jenkins workspace

* Re-combine ciGroup agents

* Address some PR feedback / questions

* Add --preserve-root
brianseeders added a commit that referenced this pull request Oct 21, 2019
* Add ability to use ram disk for jenkins workspace

* Re-combine ciGroup agents

* Address some PR feedback / questions

* Add --preserve-root
spalger pushed a commit to spalger/kibana that referenced this pull request Oct 31, 2019
* Add ability to use ram disk for jenkins workspace

* Re-combine ciGroup agents

* Address some PR feedback / questions

* Add --preserve-root
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature:CI Continuous integration release_note:skip Skip the PR/issue when compiling release notes Team:Operations Team label for Operations Team v6.8.4 v7.4.1 v7.5.0 v7.6.0 v8.0.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants