org.apache.hadoop.yarn.util
Class ProcfsBasedProcessTree

java.lang.Object
  extended by org.apache.hadoop.yarn.util.ProcfsBasedProcessTree

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

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


Field Summary
static long JIFFY_LENGTH_IN_MILLIS
           
static long PAGE_SIZE
           
protected  Map<String,org.apache.hadoop.yarn.util.ProcfsBasedProcessTree.ProcessInfo> processTree
           
static String PROCFS_CMDLINE_FILE
           
static String PROCFS_STAT_FILE
           
 
Constructor Summary
ProcfsBasedProcessTree(String pid)
           
ProcfsBasedProcessTree(String pid, boolean setsidUsed)
           
ProcfsBasedProcessTree(String pid, boolean setsidUsed, 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()
          Get the cumulative resident set size (rss) memory used by all the processes in the process-tree.
 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()
          Get the cumulative virtual memory used by all the processes in the process-tree.
 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()
           
 ProcfsBasedProcessTree getProcessTree()
          Get the process-tree with latest state.
 String getProcessTreeDump()
          Get a dump of the process-tree.
static boolean isAvailable()
          Checks if the ProcfsBasedProcessTree is available on this system.
 String toString()
          Returns a string printing PIDs of process present in the ProcfsBasedProcessTree.
 
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

processTree

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

ProcfsBasedProcessTree

public ProcfsBasedProcessTree(String pid)

ProcfsBasedProcessTree

public ProcfsBasedProcessTree(String pid,
                              boolean setsidUsed)

ProcfsBasedProcessTree

public ProcfsBasedProcessTree(String pid,
                              boolean setsidUsed,
                              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
setsidUsed - true, if setsid was used for the root pid
procfsDir - the root of a proc file system - only used for testing.
Method Detail

isAvailable

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

Returns:
true if ProcfsBasedProcessTree is available. False otherwise.

getProcessTree

public ProcfsBasedProcessTree getProcessTree()
Get the process-tree with latest state. If the root-process is not alive, an empty tree will be returned.

Returns:
the process-tree with latest state.

checkPidPgrpidForMatch

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

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.

Returns:
a string concatenating the dump of information of all the processes in the process-tree

getCumulativeVmem

public long getCumulativeVmem()
Get the cumulative virtual memory used by all the processes in the process-tree.

Returns:
cumulative virtual memory used by the process-tree in bytes.

getCumulativeRssmem

public long getCumulativeRssmem()
Get the cumulative resident set size (rss) memory used by all the processes in the process-tree.

Returns:
cumulative rss memory used by the process-tree in bytes. return 0 if it cannot be calculated

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.

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.

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

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 © 2012 Apache Software Foundation. All Rights Reserved.