diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2018-11-15 13:03:26 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-15 13:03:26 +0100 |
commit | 31a7f27dcf8626f3b8e93b38d810591dd56bfc8e (patch) | |
tree | 18e1bf9837b0d9702eaadf69ba8f8f4ea5d67339 /config-model | |
parent | 733522c1b19d84020aee5b5993001b60e9381457 (diff) | |
parent | 9b7255274a80ccc15224b224949443a103a1873b (diff) |
Merge pull request #7668 from vespa-engine/balder/avoid-readahead-on-fast-disks-to-favour-memory-footprint
No readahead on mapped disk indexes when using ssd's
Diffstat (limited to 'config-model')
-rw-r--r-- | config-model/src/main/java/com/yahoo/vespa/model/search/NodeFlavorTuning.java | 8 | ||||
-rw-r--r-- | config-model/src/test/java/com/yahoo/vespa/model/search/NodeFlavorTuningTest.java | 10 |
2 files changed, 17 insertions, 1 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/NodeFlavorTuning.java b/config-model/src/main/java/com/yahoo/vespa/model/search/NodeFlavorTuning.java index f6f64eba482..b845b180548 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/search/NodeFlavorTuning.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/search/NodeFlavorTuning.java @@ -5,7 +5,6 @@ import com.yahoo.config.provision.Flavor; import com.yahoo.vespa.config.search.core.ProtonConfig; import static java.lang.Long.min; -import static java.lang.Integer.max; /** * Tuning of proton config for a search node based on the node flavor of that node. @@ -31,6 +30,7 @@ public class NodeFlavorTuning implements ProtonConfig.Producer { tuneFlushStrategyTlsSize(builder.flush.memory); tuneSummaryReadIo(builder.summary.read); tuneSummaryCache(builder.summary.cache); + tuneSearchReadIo(builder.search.mmap); } private void tuneSummaryCache(ProtonConfig.Summary.Cache.Builder builder) { @@ -82,4 +82,10 @@ public class NodeFlavorTuning implements ProtonConfig.Producer { } } + private void tuneSearchReadIo(ProtonConfig.Search.Mmap.Builder builder) { + if (nodeFlavor.hasFastDisk()) { + builder.advise(ProtonConfig.Search.Mmap.Advise.RANDOM); + } + } + } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/search/NodeFlavorTuningTest.java b/config-model/src/test/java/com/yahoo/vespa/model/search/NodeFlavorTuningTest.java index 3019b35cd2e..95503550767 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/search/NodeFlavorTuningTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/search/NodeFlavorTuningTest.java @@ -87,6 +87,12 @@ public class NodeFlavorTuningTest { } @Test + public void require_that_search_read_mmap_advise_is_set_based_on_disk() { + assertSearchReadAdvise(ProtonConfig.Search.Mmap.Advise.RANDOM, true); + assertSearchReadAdvise(ProtonConfig.Search.Mmap.Advise.NORMAL, false); + } + + @Test public void require_that_summary_cache_max_bytes_is_set_based_on_memory() { assertEquals(1*GB/20, configFromMemorySetting(1).summary().cache().maxbytes()); assertEquals(256*GB/20, configFromMemorySetting(256).summary().cache().maxbytes()); @@ -115,6 +121,10 @@ public class NodeFlavorTuningTest { assertEquals(expValue, configFromDiskSetting(fastDisk).summary().read().io()); } + private static void assertSearchReadAdvise(ProtonConfig.Search.Mmap.Advise.Enum expValue, boolean fastDisk) { + assertEquals(expValue, configFromDiskSetting(fastDisk).search().mmap().advise()); + } + private static void assertSharedDisk(boolean sharedDisk, boolean docker) { assertEquals(sharedDisk, configFromEnvironmentType(docker).hwinfo().disk().shared()); } |