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

Use Go 1.9 instead of 1.8 due to performance issue #1489

Closed
david50407 opened this issue Jan 28, 2018 · 2 comments
Closed

Use Go 1.9 instead of 1.8 due to performance issue #1489

david50407 opened this issue Jan 28, 2018 · 2 comments

Comments

@david50407
Copy link

According to the GitLab official blog post, How a fix in Go 1.9 sped up our Gitaly service by 30x, Gitaly (GitLab Git RPC service) with Go 1.8 uses fork for ForkExec caused child process starting with a copy of the parent processes' memory, in other words, ForkExec takes longer when the process has larger virtual memory footprint.

In Go 1.9, ForkExec switch from fork to clone(2) with CLONE_VFORK and CLONE_VM flags, or as known as posix_spawn(3), which doesn't copy parent processes' memory space and has a roughly constant time.

ref: golang/go#5838
ref: https://go-review.googlesource.com/c/go/+/37439

@solidnerd
Copy link
Collaborator

Hey,
it's already in there see #1479 . It will be available with the 10.4.0 release.

@solidnerd
Copy link
Collaborator

It can be closed now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants