[ 
https://issues.apache.org/jira/browse/UIMA-2804?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry Cwiklik updated UIMA-2804:
--------------------------------

    Description: 
Modify ducc to use Linux cgroups. Currently, only cgroup memory subsystem will 
be used to limit amount of memory a process is allowed to use. Cgroups provide 
a light weight virtual machine for processes.

An agent will launch processes in a cgroup container. The agent on start up 
should check a global flag in ducc.properties to enable/disable use of cgroups. 
Also, the agent should check if cgroups are properly installed on a node by 
checking for existence of /cgroup/ducc folder. The final check is against an 
exclusion file which may facilitate disabling cgroups on per machine basis. 

If cgroups are enabled, the agent will launch processes in a cgroup container. 
For JPs and APs, the first process assigned to the container will be the 
primary/owner of the container. The agent should support injecting 
other/secondary processes into an existing container. If the JP primary process 
terminates, the agent will proceed to kill secondary processes and finally 
remove the container. If the AP primary process terminates, the agent will kill 
secondary processes but will not remove the container. Same will be true for 
JDs. In both of these cases, the container is associated with a reservation and 
thus the container should remain for as long the reservation is open.  

The agent will also monitor use of swap space by each container. The container 
threshold will be computed by ducc based on assigned number of shares to the 
container. For example, if the container is assigned 1 15GB share on a machine 
with 45GB total memory, ducc will constrain the container to 1/3 of total 
(minus 1GB) swap space.

  was:
Modify ducc to use Linux cgroups. Currently, only cgroup memory subsystem will 
be used to limit amount of memory a process is allowed to use. Cgroups provide 
a light weight virtual machine for processes.

An agent will launch processes in a cgroup container. The agent on start up 
should check a global flag in ducc.properties to enable/disable use of cgroups. 
Also, the agent should check if cgroups are properly installed on a node by 
checking for existence of /cgroup/ducc folder. The final check is against an 
exclusion file which may facilitate disabling cgroups on per machine basis. 

If cgroups are enabled, the agent will launch processes in a cgroup container. 
For JPs and APs, the first process assigned to the container will be the 
primary/owner of the container. The agent should support injecting 
other/secondary processes into an existing container. If the JP primary process 
terminates, the agent will proceed to kill secondary processes and finally 
remove the container. If the AP primary process terminates, the agent will kill 
secondary processes but will not remove the container. Same will be true for 
JDs. In both of these cases, the container is associated with a reservation and 
thus the container should remain for as long the reservation is open.  

The agent will also max use of swap space by each container. The container 
threshold will be computed by ducc based on assigned number of shares assigned 
to the container. For example, if the container is assigned 1 15GB share on 
machine with 45GB total memory, ducc will constrain the container to 1/3 of 
total (minus 1GB) swap space.

    
> Add CGroup support
> ------------------
>
>                 Key: UIMA-2804
>                 URL: https://issues.apache.org/jira/browse/UIMA-2804
>             Project: UIMA
>          Issue Type: New Feature
>          Components: DUCC
>            Reporter: Jerry Cwiklik
>            Assignee: Jerry Cwiklik
>
> Modify ducc to use Linux cgroups. Currently, only cgroup memory subsystem 
> will be used to limit amount of memory a process is allowed to use. Cgroups 
> provide a light weight virtual machine for processes.
> An agent will launch processes in a cgroup container. The agent on start up 
> should check a global flag in ducc.properties to enable/disable use of 
> cgroups. Also, the agent should check if cgroups are properly installed on a 
> node by checking for existence of /cgroup/ducc folder. The final check is 
> against an exclusion file which may facilitate disabling cgroups on per 
> machine basis. 
> If cgroups are enabled, the agent will launch processes in a cgroup 
> container. For JPs and APs, the first process assigned to the container will 
> be the primary/owner of the container. The agent should support injecting 
> other/secondary processes into an existing container. If the JP primary 
> process terminates, the agent will proceed to kill secondary processes and 
> finally remove the container. If the AP primary process terminates, the agent 
> will kill secondary processes but will not remove the container. Same will be 
> true for JDs. In both of these cases, the container is associated with a 
> reservation and thus the container should remain for as long the reservation 
> is open.  
> The agent will also monitor use of swap space by each container. The 
> container threshold will be computed by ducc based on assigned number of 
> shares to the container. For example, if the container is assigned 1 15GB 
> share on a machine with 45GB total memory, ducc will constrain the container 
> to 1/3 of total (minus 1GB) swap space.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to