org.apache.hadoop.yarn.util
Class ProcfsBasedProcessTree

java.lang.Object
  extended by org.apache.hadoop.conf.Configured
      extended by org.apache.hadoop.yarn.util.ResourceCalculatorProcessTree
          extended by org.apache.hadoop.yarn.util.ProcfsBasedProcessTree
All Implemented Interfaces:
org.apache.hadoop.conf.Configurable

@InterfaceAudience.Private
@InterfaceStability.Unstable
public class ProcfsBasedProcessTree
extends ResourceCalculatorProcessTree

A Proc file-system based ProcessTree. Works only on Linux.


Field Summary
static long JIFFY_LENGTH_IN_MILLIS
           
static int KB_TO_BYTES
           
static long PAGE_SIZE
           
protected  Map<String,org.apache.hadoop.yarn.util.ProcfsBasedProcessTree.ProcessTreeSmapMemInfo> processSMAPTree
           
protected  Map<String,org.apache.hadoop.yarn.util.ProcfsBasedProcessTree.ProcessInfo> processTree
           
static String PROCFS_CMDLINE_FILE
           
static String PROCFS_STAT_FILE
           
static String SMAPS
           
 
Constructor Summary
ProcfsBasedProcessTree(String pid)
           
ProcfsBasedProcessTree(String pid, String procfsDir)
          Build a new process tree rooted at the pid.
 
Method Summary
 boolean checkPidPgrpidForMatch()
          Verify that the given process id is same as its process group id.
static boolean checkPidPgrpidForMatch(String _pid, String procfs)
           
 long getCumulativeCpuTime()
          Get the CPU time in millisecond used by all the processes in the process-tree since the process-tree created
 long getCumulativeRssmem(int olderThanAge)
          Get the cumulative resident set size (rss) memory used by all the processes in the process-tree that are older than the passed in age.
 long getCumulativeVmem(int olderThanAge)
          Get the cumulative virtual memory used by all the processes in the process-tree that are older than the passed in age.
 List<String> getCurrentProcessIDs()
           
 String getProcessTreeDump()
          Get a dump of the process-tree.
static boolean isAvailable()
          Checks if the ProcfsBasedProcessTree is available on this system.
 void setConf(org.apache.hadoop.conf.Configuration conf)
           
 String toString()
          Returns a string printing PIDs of process present in the ProcfsBasedProcessTree.
 void updateProcessTree()
          Update process-tree with latest state.
 
Methods inherited from class org.apache.hadoop.yarn.util.ResourceCalculatorProcessTree
getCumulativeRssmem, getCumulativeVmem, getResourceCalculatorProcessTree
 
Methods inherited from class org.apache.hadoop.conf.Configured
getConf
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

PROCFS_STAT_FILE

public static final String PROCFS_STAT_FILE
See Also:
Constant Field Values

PROCFS_CMDLINE_FILE

public static final String PROCFS_CMDLINE_FILE
See Also:
Constant Field Values

PAGE_SIZE

public static final long PAGE_SIZE

JIFFY_LENGTH_IN_MILLIS

public static final long JIFFY_LENGTH_IN_MILLIS

SMAPS

public static final String SMAPS
See Also:
Constant Field Values

KB_TO_BYTES

public static final int KB_TO_BYTES
See Also:
Constant Field Values

processSMAPTree

protected Map<String,org.apache.hadoop.yarn.util.ProcfsBasedProcessTree.ProcessTreeSmapMemInfo> processSMAPTree

processTree

protected Map<String,org.apache.hadoop.yarn.util.ProcfsBasedProcessTree.ProcessInfo> processTree
Constructor Detail

ProcfsBasedProcessTree

public ProcfsBasedProcessTree(String pid)

ProcfsBasedProcessTree

public ProcfsBasedProcessTree(String pid,
                              String procfsDir)
Build a new process tree rooted at the pid. This method is provided mainly for testing purposes, where the root of the proc file system can be adjusted.

Parameters:
pid - root of the process tree
procfsDir - the root of a proc file system - only used for testing.
Method Detail

setConf

public void setConf(org.apache.hadoop.conf.Configuration conf)
Specified by:
setConf in interface org.apache.hadoop.conf.Configurable
Overrides:
setConf in class org.apache.hadoop.conf.Configured

isAvailable

public static boolean isAvailable()
Checks if the ProcfsBasedProcessTree is available on this system.

Returns:
true if ProcfsBasedProcessTree is available. False otherwise.

updateProcessTree

public void updateProcessTree()
Update process-tree with latest state. If the root-process is not alive, tree will be empty.

Specified by:
updateProcessTree in class ResourceCalculatorProcessTree

checkPidPgrpidForMatch

public boolean checkPidPgrpidForMatch()
Verify that the given process id is same as its process group id.

Specified by:
checkPidPgrpidForMatch in class ResourceCalculatorProcessTree
Returns:
true if the process id matches else return false.

checkPidPgrpidForMatch

public static boolean checkPidPgrpidForMatch(String _pid,
                                             String procfs)

getCurrentProcessIDs

public List<String> getCurrentProcessIDs()

getProcessTreeDump

public String getProcessTreeDump()
Get a dump of the process-tree.

Specified by:
getProcessTreeDump in class ResourceCalculatorProcessTree
Returns:
a string concatenating the dump of information of all the processes in the process-tree

getCumulativeVmem

public long getCumulativeVmem(int olderThanAge)
Get the cumulative virtual memory used by all the processes in the process-tree that are older than the passed in age.

Specified by:
getCumulativeVmem in class ResourceCalculatorProcessTree
Parameters:
olderThanAge - processes above this age are included in the memory addition
Returns:
cumulative virtual memory used by the process-tree in bytes, for processes older than this age.

getCumulativeRssmem

public long getCumulativeRssmem(int olderThanAge)
Get the cumulative resident set size (rss) memory used by all the processes in the process-tree that are older than the passed in age.

Specified by:
getCumulativeRssmem in class ResourceCalculatorProcessTree
Parameters:
olderThanAge - processes above this age are included in the memory addition
Returns:
cumulative rss memory used by the process-tree in bytes, for processes older than this age. return 0 if it cannot be calculated

getCumulativeCpuTime

public long getCumulativeCpuTime()
Get the CPU time in millisecond used by all the processes in the process-tree since the process-tree created

Specified by:
getCumulativeCpuTime in class ResourceCalculatorProcessTree
Returns:
cumulative CPU time in millisecond since the process-tree created return 0 if it cannot be calculated

toString

public String toString()
Returns a string printing PIDs of process present in the ProcfsBasedProcessTree. Output format : [pid pid ..]

Overrides:
toString in class Object


Copyright © 2014 Apache Software Foundation. All Rights Reserved.