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

[ws-daemon] Improve download speed of snapshots #13515

Merged
merged 1 commit into from
Oct 4, 2022
Merged

[ws-daemon] Improve download speed of snapshots #13515

merged 1 commit into from
Oct 4, 2022

Conversation

aledbf
Copy link
Member

@aledbf aledbf commented Oct 2, 2022

Description

Improve the download of prebuild from the remote content storage using multiple connections.

fixes #12345

How to test

  • Add the role new-workspace-cluster to your account
  • Check the persistent_volume_claim is not checked
  • Deploy an ephemeral cluster
  • Open a workspace using a prebuild
  • Remove the role new-workspace-cluster from your account
  • Open a workspace using a the same prebuild
  • Compare the times.

Release Notes

NONE

Werft options:

  • /werft with-local-preview
    If enabled this will build install/preview
  • /werft with-preview
  • /werft with-integration-tests=all
    Valid options are all, workspace, webapp, ide

@werft-gitpod-dev-com
Copy link

started the job as gitpod-build-aledbf-snap.6 because the annotations in the pull request description changed
(with .werft/ from main)

@aledbf
Copy link
Member Author

aledbf commented Oct 3, 2022

/werft run

👍 started the job as gitpod-build-aledbf-snap.7
(with .werft/ from main)

@utam0k
Copy link
Contributor

utam0k commented Oct 3, 2022

This is an improvement by parallelization, right? I wonder how to impact a node by this change. How about doing loadgen?

@aledbf
Copy link
Member Author

aledbf commented Oct 3, 2022

How about doing loadgen?

That would require access to prebuilds from the loadgen account and prepare a custom scenario.

defer os.Remove(tempFile.Name())

args := []string{
"-x16", "-j12",
Copy link
Contributor

Choose a reason for hiding this comment

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

Apparently, by default, retries are repeated 5 times. This seems a bit much.
https://aria2.github.io/manual/en/html/aria2c.html#cmdoption-m

@utam0k
Copy link
Contributor

utam0k commented Oct 3, 2022

That would require access to prebuilds from the loadgen account and prepare a custom scenario.

Shall I put it as a note in the next release of the changelog? Will you have the deployer take a careful look at it?

@aledbf aledbf marked this pull request as ready for review October 3, 2022 00:53
@aledbf aledbf requested a review from a team October 3, 2022 00:53
@github-actions github-actions bot added the team: workspace Issue belongs to the Workspace team label Oct 3, 2022
@kylos101
Copy link
Contributor

kylos101 commented Oct 3, 2022

That would require access to prebuilds from the loadgen account and prepare a custom scenario.

Shall I put it as a note in the next release of the changelog? Will you have the deployer take a careful look at it?

Hi @utam0k 👋 , luckily @aledbf is the deployer this week (on-call next week). 😉

Note: I think loadgen would require a code change to use a prebuild/snapshot initializer for benchmark. Context, I think it assumes the git initializer.

As an alternative to using loadgen, we could cordon the workspace nodes (but one) of an ephemeral cluster, and test a single node.

For example, start 8 standard Gitpod workspaces as fast as you can, have another person do the same, and observe how the node resources perform, do the workspaces start, etc. How does this perform while backups are happening concurrently? It'll be interesting to see how close we get to the memory limit for ws-daemon.

@utam0k
Copy link
Contributor

utam0k commented Oct 3, 2022

We are lucky!

Hi @utam0k wave , luckily @aledbf is the deployer this week (on-call next week). wink

Ops, I forgot about it 🙇

Note: I think loadgen would require a code change to use a prebuild/snapshot initializer for benchmark. Context, I think it assumes the git initializer.

Is this a limitation of ws-daemo itself? If I understand correctly, classic content-init should have very few restrictions since it runs on ws-daemon. If I am wrong, please let me know.

It'll be interesting to see how close we get to the memory limit for ws-daemon.

@Furisto
Copy link
Member

Furisto commented Oct 3, 2022

Is this a limitation of ws-daemo itself? If I understand correctly, classic content-init should have very few restrictions since it runs on ws-daemon. If I am wrong, please let me know.

No, it is just a limitation of loadgen at the moment.

@utam0k
Copy link
Contributor

utam0k commented Oct 3, 2022

No, it is just a limitation of loadgen at the moment.

@Furisto
I guess I don't know enough. May I ask you to elaborate a bit more?

@sagor999
Copy link
Contributor

sagor999 commented Oct 3, 2022

/hold

Copy link
Contributor

@sagor999 sagor999 left a comment

Choose a reason for hiding this comment

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

LGTM
Added hold in case of, but I think discussion is not related to the changes.
@aledbf feel free to unhold when you are ready, so that this change can go into next gen cluster. 🙏

@roboquat roboquat merged commit 0b1006a into main Oct 4, 2022
@roboquat roboquat deleted the aledbf/snap branch October 4, 2022 13:57
@mikenikles
Copy link
Contributor

This was a community-reported bug via #12345. Without a changelog entry, how will I know when this is deployed?

@utam0k
Copy link
Contributor

utam0k commented Oct 4, 2022

This was a community-reported bug via #12345. Without a changelog entry, how will I know when this is deployed?

If the schedule is as usual, maybe by the end of this week.

@roboquat roboquat added deployed: workspace Workspace team change is running in production deployed Change is completely running in production labels Oct 5, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
deployed: workspace Workspace team change is running in production deployed Change is completely running in production release-note-none size/S team: workspace Issue belongs to the Workspace team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Stuck on "Loading prebuild..." for 60 minutes
7 participants