Repository: mesos Updated Branches: refs/heads/master 9b19432b8 -> 49d4553a0
Made GC_DISK_HEADROOM configurable. Added --gc_disk_headroom to mesos-slave which let's users configure the disk headroom value used to calculate maximum executor age. Review: https://reviews.apache.org/r/28681 Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/49d4553a Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/49d4553a Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/49d4553a Branch: refs/heads/master Commit: 49d4553a0645624179f17ed6da8d2443e88998bf Parents: 9b19432 Author: Niklas Nielsen <[email protected]> Authored: Thu Dec 4 11:12:17 2014 -0800 Committer: Niklas Q. Nielsen <[email protected]> Committed: Thu Dec 4 11:12:17 2014 -0800 ---------------------------------------------------------------------- src/slave/flags.hpp | 10 ++++++++++ src/slave/slave.cpp | 7 ++++++- 2 files changed, 16 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/49d4553a/src/slave/flags.hpp ---------------------------------------------------------------------- diff --git a/src/slave/flags.hpp b/src/slave/flags.hpp index 4f5b8b4..670997d 100644 --- a/src/slave/flags.hpp +++ b/src/slave/flags.hpp @@ -144,6 +144,15 @@ public: "the available disk usage.", GC_DELAY); + add(&Flags::gc_disk_headroom, + "gc_disk_headroom", + "Adjust disk headroom used to calculate maximum executor\n" + "directory age. Age is calculated by:\n" + "gc_delay * max(0.0, (1.0 - gc_disk_headroom - disk usage))\n" + "every --disk_watch_interval duration. gc_disk_headroom must\n" + "be a value between 0.0 and 1.0", + GC_DISK_HEADROOM); + add(&Flags::disk_watch_interval, "disk_watch_interval", "Periodic time interval (e.g., 10secs, 2mins, etc)\n" @@ -440,6 +449,7 @@ public: Duration executor_registration_timeout; Duration executor_shutdown_grace_period; Duration gc_delay; + double gc_disk_headroom; Duration disk_watch_interval; Duration resource_monitoring_interval; bool checkpoint; http://git-wip-us.apache.org/repos/asf/mesos/blob/49d4553a/src/slave/slave.cpp ---------------------------------------------------------------------- diff --git a/src/slave/slave.cpp b/src/slave/slave.cpp index 9ac6458..50b5781 100644 --- a/src/slave/slave.cpp +++ b/src/slave/slave.cpp @@ -281,6 +281,11 @@ void Slave::initialize() } } + if ((flags.gc_disk_headroom < 0) || (flags.gc_disk_headroom > 1)) { + EXIT(1) << "Invalid value '" << flags.gc_disk_headroom + << "' for --gc_disk_headroom. Must be between 0.0 and 1.0."; + } + // Ensure slave work directory exists. CHECK_SOME(os::mkdir(flags.work_dir)) << "Failed to create slave work directory '" << flags.work_dir << "'"; @@ -3310,7 +3315,7 @@ void Slave::registerExecutorTimeout( // TODO(vinod): Figure out a way to express this function via cmd line. Duration Slave::age(double usage) { - return flags.gc_delay * std::max(0.0, (1.0 - GC_DISK_HEADROOM - usage)); + return flags.gc_delay * std::max(0.0, (1.0 - flags.gc_disk_headroom - usage)); }
