-
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
[jb] enable vmoptions config in .gitpod.yml #10768
Conversation
@yaohui-wyh I left some comment could you address please? We will need also a PR for docs which:
Don't forget to mention everywhere that this functionality is alpha and the can leave feedback about performance on #8704 |
Sure, I'm glad to add a PR for docs :) |
/werft run 👍 started the job as gitpod-build-yh-vmoptions-fork.0 |
@yaohui-wyh Could you have a look the build does not pass:
|
Hi @akosyakov Could you please rerun the CI job? I assume missing deps at BUILD.yaml caused the failure (since |
/werft run 👍 started the job as gitpod-build-yh-vmoptions-fork.1 |
/werft run with-preview 👍 started the job as gitpod-build-yh-vmoptions-fork.2 |
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.
it works nicely, tested that plugins are still working as well.
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.
@akosyakov I have a couple of questions on this one...
- How can we provide guidance to users on the appropriate settings to set relative to their workspace spec? Considering self-hosted VM’s being potentially different configurations to SaaS?
- Is the
.gitpod.yml
the right place to have this API/abstraction? Does this not couple closely the project configuration with the underlying machine characteristics, e.g. what considerations should we take for workspace classes?
EDIT: Just noticed that we're identifying as alpha
[1]
An idea is to detect a user change to the actual max heap size in the backend plugin and suggest a user to put in .gitpod.yml to persist. So the flow would be like:
I think workspace classes is a bit orthogonal, we will need to evaluate whether configured Xmx in .gitpod.yml can be managed by the current workspace class, i.e. recommendation that JB backend should not be allowed to use more than 60% process of the total allowed memory. If it happens as a remedy we should suggest not only update Xmx but upgrade to the bigger workspace class. |
@loujaybee just to clarify, here VM is JVM, it is a project characteristic which does not change from hardware on which you run, i.e. if you need 4096 JVM max heap size to load a project it will be the same whether you run on SaaS, Self-Hosted or in your local docker container. vmoptions is coming from JB terminology |
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'll leave @akosyakov to assess the IDE changes. I have just one question about naming of the options.
/hold
/werft run 👍 started the job as gitpod-build-yh-vmoptions-fork.3 |
/unhold |
Description
Add
vmoptions
in gitpod schema (.gitpod.yml
)..gitpod.yml
have higher priority than user's environment variables. Suppose we have a workspace with:.gitpod.yml
:jetbrains.intellij.vmoptions = "-Xmx4g"
INTELLIJ_VMOPTIONS
EnvVar set to-Xmx3g -Didea.is.internal=true
-Didea.is.internal=true -Xmx4g
Related Issue(s)
Remedy for #8704
How to test
.gitpod.yml
and insert ajetbrains.intellij.vmoptions
field with value"-Xmx4g"
status
binary:cd /workspace/gitpod/components/ide/jetbrains/image/status && go build
. Replace thestatus
binary:rm /ide-desktop/status; cp status /ide-desktop/status
status
process:ps aux | grep status; kill -9 <pid>
supervisor
restartstatus
immediately) Check JetBrains IDE server VMOptions:jps -mlv | grep intellij | grep -i xmx
Expected result:
-Xmx4g
Release Notes
Documentation