-
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
Investigate how to add possibility to limit CPU consumption by containers. #2630
Comments
we should take a look at container creation API https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/create-a-container I listed fields that can be helpful to limit CPU consumption below. We should investigate how to use them, how to configure these limits from product configuration and how they limits resources to address different profiles of server overloading. We can add some limitations into internal representation of environment org.eclipse.che.api.environment.server.model.CheServicesEnvironmentImpl and into implementations of infrastructure provisioner org.eclipse.che.api.environment.server.InfrastructureProvisioner. |
Here is a description of limits usage: CpuPeriod, CpuQuota allow to set upper limit of whole CPU consumption for each container. E.g. 25% of whole CPU is allowed to use by each container. But some amount of containers can occupy whole CPU, so other limitations are still needed. These fields allow us to distribute horse power of CPU between containers. CgroupParent allow to set parent cgroup for all containers cgroups. Then user/admin can configure parent cgroup manually to set general limits to whole containers sub-system. But these limits have to be set by admin. This option also can be set in docker daemon configuration without configuring the product. On a system level admin can set CpuShares, CpuPeriod, CpuQuota, and other limitations to this cgroup including IO, network limits. |
Sometimes containers consumes too much CPU cycles which can lead to hanging of other container, Che master or even whole system. We should add possibility to limit CPU consumption by containers. In that case administrator of Che will be able to set some policies.
This issue assumes initial implementation and doesn't require full set of limitations supported by docker. After initial implementation we will have possibility to discover which limitation options are required by community.
The text was updated successfully, but these errors were encountered: