-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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: Use a pair of veths instead of slirp4netns #8955
Conversation
I will have more drawings and other information on Monday that will show more of what I intend to do. |
/hold |
) | ||
} | ||
|
||
cmd = exec.Command(ipCmd, "netns", "exec", netns, "ip", "link", "set", "lo", "up") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do we need to set lo up?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@aledbf Thanks for your review!
For now, I guess slirp4netns enable lo
automatically. So, when we want to remove slirp4netns
, we have to enable lo
manually.
Is it ready for review? |
Hi @utam0k , while this is in draft, if you would like "an early review". that is totally okay to request. 💌 😍 See you tomorrow! |
@kylos101 Thanks for organizing the PR. This PR will be available for review soon. I had a little trouble verifying it. |
/unhold |
@princerachit @aledbf @iQQBot @kylos101 Sorry to keep you waiting. I have finished brushing up on this PR. PTAL. |
@@ -42,7 +42,7 @@ func main() { | |||
Action: specs.ActAllow, | |||
}, | |||
|
|||
// slirp4netns requires setns, as do we for debugging | |||
// Running docker on a workspace requires setns |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
docker is still using slirp4netns.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We disabled the docker slirp4netns use when we introduced slirp4netns for the workspace as a whole. We have however not yet removed that code from docker-up. We should do that in a follow-up PR.
@princerachit @aledbf @iQQBot @kylos101 @csweichel This PR is ready for review again. PTAL. Load and other measurements will be done tomorrow, but the code itself is available for review. |
/hold Until the numerical measurements are completed. |
Network IO metricsI measured the limits of traffic from workspace to ring1 using slirp4netns[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 9.78 GBytes 8.40 Gbits/sec 0 sender
[ 5] 0.00-10.00 sec 9.78 GBytes 8.40 Gbits/sec receiver veth[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 50.5 GBytes 43.4 Gbits/sec 284 sender
[ 5] 0.00-10.00 sec 50.5 GBytes 43.4 Gbits/sec receiver CPU metricsThis is the CPU utilization when 8 Gbit/sec of traffic continues to flow(workspace -> ring1)
More details can be found in the |
/unhold |
@csweichel I think you are probably interested in these above metrics. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Works like a charm - love the new performance!
Really great work @utam0k.
great work 👍 , will have a look for tomorrow |
@iQQBot We use installer to ship For WebApp, they currently use helm, but I believe it uses a similar versions strategy, so if we merge to main, all these components should ship too. @geropl , can you confirm? How do you deploy IDE changes? I see this job updates web app clusters using argo. So it seems like, if we merge to main, IDE should avoid doing IDE deploy until web app has deployed. WDYT? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i have not tried, clean up in supervisor looks good.
Description
This PR creates a pair of veth between the workspace and ring1.
Related Issue(s)
Fixed #8106
How to test
in gitpod workspace
https://to-setup-veth.staging.gitpod-dev.com/workspaces
$ docker run hello-world
maybe you have to kill slirp4netns's process.
Release Notes
Documentation
No