|
@@ -19,6 +19,7 @@
|
|
package org.apache.hadoop.yarn.util;
|
|
package org.apache.hadoop.yarn.util;
|
|
|
|
|
|
import static org.apache.hadoop.yarn.util.ProcfsBasedProcessTree.KB_TO_BYTES;
|
|
import static org.apache.hadoop.yarn.util.ProcfsBasedProcessTree.KB_TO_BYTES;
|
|
|
|
+import static org.apache.hadoop.yarn.util.ResourceCalculatorProcessTree.UNAVAILABLE;
|
|
import static org.junit.Assert.fail;
|
|
import static org.junit.Assert.fail;
|
|
import static org.junit.Assume.assumeTrue;
|
|
import static org.junit.Assume.assumeTrue;
|
|
|
|
|
|
@@ -226,8 +227,8 @@ public class TestProcfsBasedProcessTree {
|
|
p.updateProcessTree();
|
|
p.updateProcessTree();
|
|
Assert.assertFalse("ProcessTree must have been gone", isAlive(pid));
|
|
Assert.assertFalse("ProcessTree must have been gone", isAlive(pid));
|
|
Assert.assertTrue(
|
|
Assert.assertTrue(
|
|
- "Cumulative vmem for the gone-process is " + p.getCumulativeVmem()
|
|
|
|
- + " . It should be zero.", p.getCumulativeVmem() == 0);
|
|
|
|
|
|
+ "vmem for the gone-process is " + p.getVirtualMemorySize()
|
|
|
|
+ + " . It should be zero.", p.getVirtualMemorySize() == 0);
|
|
Assert.assertTrue(p.toString().equals("[ ]"));
|
|
Assert.assertTrue(p.toString().equals("[ ]"));
|
|
}
|
|
}
|
|
|
|
|
|
@@ -429,16 +430,16 @@ public class TestProcfsBasedProcessTree {
|
|
// build the process tree.
|
|
// build the process tree.
|
|
processTree.updateProcessTree();
|
|
processTree.updateProcessTree();
|
|
|
|
|
|
- // verify cumulative memory
|
|
|
|
- Assert.assertEquals("Cumulative virtual memory does not match", 600000L,
|
|
|
|
- processTree.getCumulativeVmem());
|
|
|
|
|
|
+ // verify virtual memory
|
|
|
|
+ Assert.assertEquals("Virtual memory does not match", 600000L,
|
|
|
|
+ processTree.getVirtualMemorySize());
|
|
|
|
|
|
// verify rss memory
|
|
// verify rss memory
|
|
long cumuRssMem =
|
|
long cumuRssMem =
|
|
ProcfsBasedProcessTree.PAGE_SIZE > 0
|
|
ProcfsBasedProcessTree.PAGE_SIZE > 0
|
|
? 600L * ProcfsBasedProcessTree.PAGE_SIZE : 0L;
|
|
? 600L * ProcfsBasedProcessTree.PAGE_SIZE : 0L;
|
|
- Assert.assertEquals("Cumulative rss memory does not match", cumuRssMem,
|
|
|
|
- processTree.getCumulativeRssmem());
|
|
|
|
|
|
+ Assert.assertEquals("rss memory does not match", cumuRssMem,
|
|
|
|
+ processTree.getRssMemorySize());
|
|
|
|
|
|
// verify cumulative cpu time
|
|
// verify cumulative cpu time
|
|
long cumuCpuTime =
|
|
long cumuCpuTime =
|
|
@@ -456,8 +457,8 @@ public class TestProcfsBasedProcessTree {
|
|
setSmapsInProceTree(processTree, true);
|
|
setSmapsInProceTree(processTree, true);
|
|
// RSS=Min(shared_dirty,PSS)+PrivateClean+PrivateDirty (exclude r-xs,
|
|
// RSS=Min(shared_dirty,PSS)+PrivateClean+PrivateDirty (exclude r-xs,
|
|
// r--s)
|
|
// r--s)
|
|
- Assert.assertEquals("Cumulative rss memory does not match",
|
|
|
|
- (100 * KB_TO_BYTES * 3), processTree.getCumulativeRssmem());
|
|
|
|
|
|
+ Assert.assertEquals("rss memory does not match",
|
|
|
|
+ (100 * KB_TO_BYTES * 3), processTree.getRssMemorySize());
|
|
|
|
|
|
// test the cpu time again to see if it cumulates
|
|
// test the cpu time again to see if it cumulates
|
|
procInfos[0] =
|
|
procInfos[0] =
|
|
@@ -563,9 +564,9 @@ public class TestProcfsBasedProcessTree {
|
|
new SystemClock());
|
|
new SystemClock());
|
|
setSmapsInProceTree(processTree, smapEnabled);
|
|
setSmapsInProceTree(processTree, smapEnabled);
|
|
|
|
|
|
- // verify cumulative memory
|
|
|
|
|
|
+ // verify virtual memory
|
|
Assert.assertEquals("Cumulative memory does not match", 700000L,
|
|
Assert.assertEquals("Cumulative memory does not match", 700000L,
|
|
- processTree.getCumulativeVmem());
|
|
|
|
|
|
+ processTree.getVirtualMemorySize());
|
|
// write one more process as child of 100.
|
|
// write one more process as child of 100.
|
|
String[] newPids = { "500" };
|
|
String[] newPids = { "500" };
|
|
setupPidDirs(procfsRootDir, newPids);
|
|
setupPidDirs(procfsRootDir, newPids);
|
|
@@ -581,34 +582,34 @@ public class TestProcfsBasedProcessTree {
|
|
|
|
|
|
// check memory includes the new process.
|
|
// check memory includes the new process.
|
|
processTree.updateProcessTree();
|
|
processTree.updateProcessTree();
|
|
- Assert.assertEquals("Cumulative vmem does not include new process",
|
|
|
|
- 1200000L, processTree.getCumulativeVmem());
|
|
|
|
|
|
+ Assert.assertEquals("vmem does not include new process",
|
|
|
|
+ 1200000L, processTree.getVirtualMemorySize());
|
|
if (!smapEnabled) {
|
|
if (!smapEnabled) {
|
|
long cumuRssMem =
|
|
long cumuRssMem =
|
|
ProcfsBasedProcessTree.PAGE_SIZE > 0
|
|
ProcfsBasedProcessTree.PAGE_SIZE > 0
|
|
? 1200L * ProcfsBasedProcessTree.PAGE_SIZE : 0L;
|
|
? 1200L * ProcfsBasedProcessTree.PAGE_SIZE : 0L;
|
|
- Assert.assertEquals("Cumulative rssmem does not include new process",
|
|
|
|
- cumuRssMem, processTree.getCumulativeRssmem());
|
|
|
|
|
|
+ Assert.assertEquals("rssmem does not include new process",
|
|
|
|
+ cumuRssMem, processTree.getRssMemorySize());
|
|
} else {
|
|
} else {
|
|
- Assert.assertEquals("Cumulative rssmem does not include new process",
|
|
|
|
- 100 * KB_TO_BYTES * 4, processTree.getCumulativeRssmem());
|
|
|
|
|
|
+ Assert.assertEquals("rssmem does not include new process",
|
|
|
|
+ 100 * KB_TO_BYTES * 4, processTree.getRssMemorySize());
|
|
}
|
|
}
|
|
|
|
|
|
// however processes older than 1 iteration will retain the older value
|
|
// however processes older than 1 iteration will retain the older value
|
|
Assert.assertEquals(
|
|
Assert.assertEquals(
|
|
- "Cumulative vmem shouldn't have included new process", 700000L,
|
|
|
|
- processTree.getCumulativeVmem(1));
|
|
|
|
|
|
+ "vmem shouldn't have included new process", 700000L,
|
|
|
|
+ processTree.getVirtualMemorySize(1));
|
|
if (!smapEnabled) {
|
|
if (!smapEnabled) {
|
|
long cumuRssMem =
|
|
long cumuRssMem =
|
|
ProcfsBasedProcessTree.PAGE_SIZE > 0
|
|
ProcfsBasedProcessTree.PAGE_SIZE > 0
|
|
? 700L * ProcfsBasedProcessTree.PAGE_SIZE : 0L;
|
|
? 700L * ProcfsBasedProcessTree.PAGE_SIZE : 0L;
|
|
Assert.assertEquals(
|
|
Assert.assertEquals(
|
|
- "Cumulative rssmem shouldn't have included new process", cumuRssMem,
|
|
|
|
- processTree.getCumulativeRssmem(1));
|
|
|
|
|
|
+ "rssmem shouldn't have included new process", cumuRssMem,
|
|
|
|
+ processTree.getRssMemorySize(1));
|
|
} else {
|
|
} else {
|
|
Assert.assertEquals(
|
|
Assert.assertEquals(
|
|
- "Cumulative rssmem shouldn't have included new process",
|
|
|
|
- 100 * KB_TO_BYTES * 3, processTree.getCumulativeRssmem(1));
|
|
|
|
|
|
+ "rssmem shouldn't have included new process",
|
|
|
|
+ 100 * KB_TO_BYTES * 3, processTree.getRssMemorySize(1));
|
|
}
|
|
}
|
|
|
|
|
|
// one more process
|
|
// one more process
|
|
@@ -629,49 +630,49 @@ public class TestProcfsBasedProcessTree {
|
|
|
|
|
|
// processes older than 2 iterations should be same as before.
|
|
// processes older than 2 iterations should be same as before.
|
|
Assert.assertEquals(
|
|
Assert.assertEquals(
|
|
- "Cumulative vmem shouldn't have included new processes", 700000L,
|
|
|
|
- processTree.getCumulativeVmem(2));
|
|
|
|
|
|
+ "vmem shouldn't have included new processes", 700000L,
|
|
|
|
+ processTree.getVirtualMemorySize(2));
|
|
if (!smapEnabled) {
|
|
if (!smapEnabled) {
|
|
long cumuRssMem =
|
|
long cumuRssMem =
|
|
ProcfsBasedProcessTree.PAGE_SIZE > 0
|
|
ProcfsBasedProcessTree.PAGE_SIZE > 0
|
|
? 700L * ProcfsBasedProcessTree.PAGE_SIZE : 0L;
|
|
? 700L * ProcfsBasedProcessTree.PAGE_SIZE : 0L;
|
|
Assert.assertEquals(
|
|
Assert.assertEquals(
|
|
- "Cumulative rssmem shouldn't have included new processes",
|
|
|
|
- cumuRssMem, processTree.getCumulativeRssmem(2));
|
|
|
|
|
|
+ "rssmem shouldn't have included new processes",
|
|
|
|
+ cumuRssMem, processTree.getRssMemorySize(2));
|
|
} else {
|
|
} else {
|
|
Assert.assertEquals(
|
|
Assert.assertEquals(
|
|
- "Cumulative rssmem shouldn't have included new processes",
|
|
|
|
- 100 * KB_TO_BYTES * 3, processTree.getCumulativeRssmem(2));
|
|
|
|
|
|
+ "rssmem shouldn't have included new processes",
|
|
|
|
+ 100 * KB_TO_BYTES * 3, processTree.getRssMemorySize(2));
|
|
}
|
|
}
|
|
|
|
|
|
// processes older than 1 iteration should not include new process,
|
|
// processes older than 1 iteration should not include new process,
|
|
// but include process 500
|
|
// but include process 500
|
|
Assert.assertEquals(
|
|
Assert.assertEquals(
|
|
- "Cumulative vmem shouldn't have included new processes", 1200000L,
|
|
|
|
- processTree.getCumulativeVmem(1));
|
|
|
|
|
|
+ "vmem shouldn't have included new processes", 1200000L,
|
|
|
|
+ processTree.getVirtualMemorySize(1));
|
|
if (!smapEnabled) {
|
|
if (!smapEnabled) {
|
|
long cumuRssMem =
|
|
long cumuRssMem =
|
|
ProcfsBasedProcessTree.PAGE_SIZE > 0
|
|
ProcfsBasedProcessTree.PAGE_SIZE > 0
|
|
? 1200L * ProcfsBasedProcessTree.PAGE_SIZE : 0L;
|
|
? 1200L * ProcfsBasedProcessTree.PAGE_SIZE : 0L;
|
|
Assert.assertEquals(
|
|
Assert.assertEquals(
|
|
- "Cumulative rssmem shouldn't have included new processes",
|
|
|
|
- cumuRssMem, processTree.getCumulativeRssmem(1));
|
|
|
|
|
|
+ "rssmem shouldn't have included new processes",
|
|
|
|
+ cumuRssMem, processTree.getRssMemorySize(1));
|
|
} else {
|
|
} else {
|
|
Assert.assertEquals(
|
|
Assert.assertEquals(
|
|
- "Cumulative rssmem shouldn't have included new processes",
|
|
|
|
- 100 * KB_TO_BYTES * 4, processTree.getCumulativeRssmem(1));
|
|
|
|
|
|
+ "rssmem shouldn't have included new processes",
|
|
|
|
+ 100 * KB_TO_BYTES * 4, processTree.getRssMemorySize(1));
|
|
}
|
|
}
|
|
|
|
|
|
- // no processes older than 3 iterations, this should be 0
|
|
|
|
|
|
+ // no processes older than 3 iterations
|
|
Assert.assertEquals(
|
|
Assert.assertEquals(
|
|
- "Getting non-zero vmem for processes older than 3 iterations", 0L,
|
|
|
|
- processTree.getCumulativeVmem(3));
|
|
|
|
|
|
+ "Getting non-zero vmem for processes older than 3 iterations",
|
|
|
|
+ UNAVAILABLE, processTree.getVirtualMemorySize(3));
|
|
Assert.assertEquals(
|
|
Assert.assertEquals(
|
|
- "Getting non-zero rssmem for processes older than 3 iterations", 0L,
|
|
|
|
- processTree.getCumulativeRssmem(3));
|
|
|
|
|
|
+ "Getting non-zero rssmem for processes older than 3 iterations",
|
|
|
|
+ UNAVAILABLE, processTree.getRssMemorySize(3));
|
|
Assert.assertEquals(
|
|
Assert.assertEquals(
|
|
- "Getting non-zero rssmem for processes older than 3 iterations", 0L,
|
|
|
|
- processTree.getCumulativeRssmem(3));
|
|
|
|
|
|
+ "Getting non-zero rssmem for processes older than 3 iterations",
|
|
|
|
+ UNAVAILABLE, processTree.getRssMemorySize(3));
|
|
} finally {
|
|
} finally {
|
|
FileUtil.fullyDelete(procfsRootDir);
|
|
FileUtil.fullyDelete(procfsRootDir);
|
|
}
|
|
}
|