YARN-2155. FairScheduler: Incorrect threshold check for preemption. (Wei Yan via kasha)
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1602295 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
6aef8fec70
commit
4bc91b44c9
@ -239,6 +239,9 @@ Release 2.5.0 - UNRELEASED
|
||||
YARN-2075. Fixed the test failure of TestRMAdminCLI. (Kenji Kikushima via
|
||||
zjshen)
|
||||
|
||||
YARN-2155. FairScheduler: Incorrect threshold check for preemption.
|
||||
(Wei Yan via kasha)
|
||||
|
||||
Release 2.4.1 - UNRELEASED
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
|
@ -1072,8 +1072,8 @@ private void updateRootQueueMetrics() {
|
||||
private boolean shouldAttemptPreemption() {
|
||||
if (preemptionEnabled) {
|
||||
return (preemptionUtilizationThreshold < Math.max(
|
||||
(float) rootMetrics.getAvailableMB() / clusterResource.getMemory(),
|
||||
(float) rootMetrics.getAvailableVirtualCores() /
|
||||
(float) rootMetrics.getAllocatedMB() / clusterResource.getMemory(),
|
||||
(float) rootMetrics.getAllocatedVirtualCores() /
|
||||
clusterResource.getVirtualCores()));
|
||||
}
|
||||
return false;
|
||||
|
@ -146,7 +146,7 @@ public void testPreemptionWithFreeResources() throws Exception {
|
||||
// Create node with 4GB memory and 4 vcores
|
||||
registerNodeAndSubmitApp(4 * 1024, 4, 2, 1024);
|
||||
|
||||
// Verify submitting another request doesn't trigger preemption
|
||||
// Verify submitting another request triggers preemption
|
||||
createSchedulingRequest(1024, "queueB", "user1", 1, 1);
|
||||
scheduler.update();
|
||||
clock.tick(6);
|
||||
@ -171,5 +171,21 @@ public void testPreemptionWithFreeResources() throws Exception {
|
||||
scheduler.preemptTasksIfNecessary();
|
||||
assertEquals("preemptResources() should not have been called", -1,
|
||||
((StubbedFairScheduler) scheduler).lastPreemptMemory);
|
||||
|
||||
resourceManager.stop();
|
||||
|
||||
startResourceManager(0.7f);
|
||||
// Create node with 4GB memory and 4 vcores
|
||||
registerNodeAndSubmitApp(4 * 1024, 4, 3, 1024);
|
||||
|
||||
// Verify submitting another request triggers preemption
|
||||
createSchedulingRequest(1024, "queueB", "user1", 1, 1);
|
||||
scheduler.update();
|
||||
clock.tick(6);
|
||||
|
||||
((StubbedFairScheduler) scheduler).resetLastPreemptResources();
|
||||
scheduler.preemptTasksIfNecessary();
|
||||
assertEquals("preemptResources() should have been called", 1024,
|
||||
((StubbedFairScheduler) scheduler).lastPreemptMemory);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user