-
Notifications
You must be signed in to change notification settings - Fork 188
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
upgrade to go1.20 and auto set go mem limit #5732
Conversation
Thanks for opening this pull request! The maintainers of this repository would appreciate it if you would create a changelog item based on your changes. |
a306d21
to
02f43a0
Compare
I'm now using the std functionality of the lib together with the k6 standalone rampup tests in owncloud/cdperf#44 and with the default 2k VUS ... which still OOMs the server. This woks fine
But this easily kills the server (which has 32GB of ram):
As soon as the stress phase begins:
Virtual memory usage still increases to ~65GB, then swap (36GB) is filled up, than the kernel rids itself of the so ... Granted 2k concurrent clients might be a lot .... two questions:
|
02f43a0
to
e5040f9
Compare
d584df9
to
f0fd87f
Compare
regarding
|
@micbar cool, with go1.20 I can no longer OOM kill my ocis using k6:
Ram usage stays below 800m on that 32gb machine. the go 1.20 garbage collector really helps. CPU peaks at 500% of avalable 800%. Lots of context canceled requests though. Well we have a request limit of 30 sec IIRC |
With regards to the go version, pls add the info accodingly in this PR
In general:
For the new envvars:
|
It will pick up the memory "limit" (note it is not a hard limit, it's a soft limit) automatically if the end users sets cgroups via https://github.com/owncloud/ocis-charts/blob/8d2666addbfa9adef233b6b53ad2ea5f97a980d2/charts/ocis/values.yaml#L358-L368 Maybe we'll expose a configuration option to tune the ratio of available memory and memory limit. But that can be done later. |
@mmattel oops, |
Signed-off-by: Jörn Friedrich Dreyer <[email protected]>
…kage Signed-off-by: Jörn Friedrich Dreyer <[email protected]>
Signed-off-by: Jörn Friedrich Dreyer <[email protected]>
Signed-off-by: Jörn Friedrich Dreyer <[email protected]>
abc5327
to
c6828ac
Compare
To make |
💥 Acceptance test localApiTests-apiGraph-ocis failed. Further test are cancelled... |
@mmattel I don't think we need to document |
Just agreed with @butonic that this will not go into the admin docs but finds it way into the dev docs. |
Signed-off-by: Jörn Friedrich Dreyer <[email protected]>
Signed-off-by: Jörn Friedrich Dreyer <[email protected]>
Signed-off-by: Jörn Friedrich Dreyer <[email protected]>
Signed-off-by: Jörn Friedrich Dreyer <[email protected]>
Signed-off-by: Jörn Friedrich Dreyer <[email protected]>
sonarcloud bug unrelated to this PR: https://sonarcloud.io/project/issues?resolved=false&sinceLeakPeriod=true&types=BUG&pullRequest=5732&id=owncloud_ocis&open=AYb_ekd6Bi3P78s7lAWf |
Can we exclude the issue from linting? I don't like merging red PRs |
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.
changelog incorrect
Co-authored-by: kobergj <[email protected]>
no ... this has nothing to do with updating the go version. the related file was untouched ... AFAICT just sonarcloud randomly picking up files 🤷 Lets see if the new commit changes things... |
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.
LGTM 👍
SonarCloud Quality Gate failed. |
* upgrade to go1.19 and set go mem limit * create ocis-pkg memlimit package * use std automemlimit import Signed-off-by: Jörn Friedrich Dreyer <[email protected]> * import automemlimit in every ocis service, drop ocis-pkg/memlimit package Signed-off-by: Jörn Friedrich Dreyer <[email protected]> * bump go to 1.20 Signed-off-by: Jörn Friedrich Dreyer <[email protected]> * drop unused config options and env vars Signed-off-by: Jörn Friedrich Dreyer <[email protected]> * update all version numbers, add doc Signed-off-by: Jörn Friedrich Dreyer <[email protected]> * fix lint Signed-off-by: Jörn Friedrich Dreyer <[email protected]> * update bingo and mockery Signed-off-by: Jörn Friedrich Dreyer <[email protected]> * bump golangci-lint Signed-off-by: Jörn Friedrich Dreyer <[email protected]> * fix selector test Signed-off-by: Jörn Friedrich Dreyer <[email protected]> * Update changelog/unreleased/enhancement-memlimit.md Co-authored-by: kobergj <[email protected]> --------- Signed-off-by: Jörn Friedrich Dreyer <[email protected]> Co-authored-by: Willy Kloucek <[email protected]> Co-authored-by: kobergj <[email protected]>
rebased #4856
@mmattel how do we document:
the go built in env varonly as part of the dev docsGOMEMLIMIT
?the automemlimit go packages env varonly by mentioning it in the dev docsAUTOMEMLIMIT
?