-
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
che #14530 Changing 'che.workspace.pool.type' from 'fixed' to 'cached' by default #14631
Conversation
… to 'cached' by default Signed-off-by: Ilya Buziuk <ibuziuk@redhat.com>
E2E Happy path tests of Eclipse Che Single User on K8S (minikube v1.1.1) has been successful:
|
@skabashnyuk +1 for having monitoring first. In the meantime, I will apply this config to prod-preview
No, but according to docs the should be no issues with threads / ram on the distance:
|
E2E tests of Eclipse Che Multiuser on OCP has failed:
|
@@ -58,7 +58,7 @@ che.workspace.auto_start=true | |||
# operations that require asynchronous execution e.g. starting/stopping | |||
|
|||
# possible values are 'fixed', 'cached' | |||
che.workspace.pool.type=fixed | |||
che.workspace.pool.type=cached |
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.
Previously, we had cached thread pool for JSON RPC messages and if I'm not mistaken it caused OutOfMemory crashing...
If we set cached without any limit - I assume it can lead to OutOfMemory crashing as well.
With JSON RPC it was easier to reproduce, but still...
Maybe it makes sense to consider this value to be configured along with the memory that Che container gets.
Like in che.properties
it's fixed and every deployment provides his own values according to provided container memory.
To be more safe we could instead of reusing default java cached pool, introduce our own cached pool with a maximum size. We could estimate some maximum size according to container memory.
I'm not a big expert in this area, and it's just thoughts. In reality, my comments may be not so critical or not relevant at all.
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.
yeah, this sounds relevant - having no ability of spesifying maximum size
is potentially risky. but again, according to the docs:
Threads that have not been used for sixty seconds are terminated and removed from the cache. Thus, a pool that remains idle for long enough will not consume any resources
So, it looks like technically we should not care about maximum size
(if we should than there is an issue on the other level e.g. RAM misconfig etc)
after discussion with @skabashnyuk and @skryzhny it looks like the situation with
|
Closing for further investigation |
What does this PR do?
Changing 'che.workspace.pool.type' from 'fixed' to 'cached' by default. This change will use CachedThreadPool:
Originally implemented for
5.1.0
in #3701 the value has not been changed ever after. I suspect the default was applied mainly for local development and was overridden for codenvy.io / on-prem installationsWhat issues does this PR fix or reference?
#14614
Should also fix #14530
Docs PR
I'm not sure if the doc PR is needed since the configuration of the workspace pool type is suppose to be an internal detail. It might be interesting to document the recommended setup as part of
Scalability, Performances and Working with high latency
Roadmap item