public class CGroupsManager extends Object
| Modifier and Type | Class and Description |
|---|---|
static class |
CGroupsManager.CgroupMemoryStat |
class |
CGroupsManager.CGroupsException |
class |
CGroupsManager.NodeProcessInfo |
class |
CGroupsManager.Validator |
| Constructor and Description |
|---|
CGroupsManager(String cgroupUtilsDir,
String cgroupBaseDir,
String subsystems,
org.apache.uima.ducc.common.utils.DuccLogger agentLogger,
long maxTimeToWaitForProcessToStop) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
cgroupExists(String cgroup) |
void |
cleanup()
Finds all stale CGroups and cleans them up.
|
Set<String> |
collectExistingContainers()
Return a Set of existing cgroup Ids found in the filesystem identified by
'cgroupBaseDir'.
|
void |
configure(NodeAgent agent) |
boolean |
createContainer(String containerId,
String userName,
String groupName,
boolean useDuccSpawn)
Creates cgroup container with a given id and owner.
|
boolean |
destroyContainer(String containerId,
String userId,
int signal)
Removes cgroup container with a given id.
|
String[] |
getAllCGroupPids()
Returns an array of PIDs managed by cgroups.
|
String |
getCGroupsUtilsDir()
Return location where cgroups utils like cgcreate can be found
|
String |
getContainerId(ManagedProcess managedProcess) |
long |
getCpuUsage(String containerId) |
String |
getDuccCGroupBaseDir() |
String[] |
getPidsInCgroup(String cgroupName) |
Set<CGroupsManager.NodeProcessInfo> |
getProcessesOnNode() |
String |
getSubsystems() |
long |
getUsageForMemoryStat(CGroupsManager.CgroupMemoryStat stat,
String containerId) |
String |
getUserGroupName(String userName) |
boolean |
isCpuReportingEnabled() |
boolean |
isPidInCGroup(String pid) |
void |
kill(String user,
String pid,
int signal) |
static void |
main(String[] args) |
boolean |
setContainerCpuShares(String containerId,
String userId,
boolean useDuccSpawn,
long containerCpuShares)
Sets the cpu shares use for an existing cgroup container.
|
boolean |
setContainerMaxMemoryLimit(String containerId,
String userId,
boolean useDuccSpawn,
long containerMaxSize)
Sets the max memory use for an existing cgroup container.
|
boolean |
setContainerSwappiness(String containerId,
String userId,
boolean useDuccSpawn,
long swappiness)
Sets the memory swappiness for an existing cgroup container.
|
CGroupsManager.Validator |
validator(String cgroupsBaseDir,
String containerId,
String userName,
boolean useDuccling) |
public static void main(String[] args)
args - public String getCGroupsUtilsDir()
public void configure(NodeAgent agent)
public CGroupsManager.Validator validator(String cgroupsBaseDir, String containerId, String userName, boolean useDuccling) throws Exception
Exceptionpublic String[] getPidsInCgroup(String cgroupName) throws Exception
Exceptionpublic void cleanup()
throws Exception
Exceptionpublic String[] getAllCGroupPids() throws Exception
Exceptionpublic String getContainerId(ManagedProcess managedProcess)
public boolean createContainer(String containerId, String userName, String groupName, boolean useDuccSpawn) throws Exception
containerId - - new cgroup container iduserId - - owner of the cgroup containeruseDuccSpawn - - use duccling to run 'cgcreate' commandExceptionpublic boolean isCpuReportingEnabled()
public long getUsageForMemoryStat(CGroupsManager.CgroupMemoryStat stat, String containerId) throws Exception
Exceptionpublic boolean setContainerMaxMemoryLimit(String containerId, String userId, boolean useDuccSpawn, long containerMaxSize) throws Exception
containerId - - existing container id for which limit will be setuserId - - container owneruseDuccSpawn - - run 'cgset' command as a usercontainerMaxSize - - max memory limitExceptionpublic boolean setContainerCpuShares(String containerId, String userId, boolean useDuccSpawn, long containerCpuShares) throws Exception
containerId - - existing container id for which limit will be setuserId - - container owneruseDuccSpawn - - run 'cgset' command as a usercontainerCpuShares - - cpu sharesExceptionpublic boolean setContainerSwappiness(String containerId, String userId, boolean useDuccSpawn, long swappiness) throws Exception
containerId - - existing container id for which limit will be setuserId - - container owneruseDuccSpawn - - run 'cgset' command as a userswappiness - - swappinessExceptionpublic boolean destroyContainer(String containerId, String userId, int signal) throws Exception
containerId - - cgroup to removeExceptionpublic Set<String> collectExistingContainers() throws Exception
Exceptionpublic String getDuccCGroupBaseDir()
public String getSubsystems()
public Set<CGroupsManager.NodeProcessInfo> getProcessesOnNode() throws Exception
ExceptionCopyright © 2012–2017 The Apache Software Foundation. All rights reserved.