Skip to content

Commit 6653046

Browse files
committed
feature flag
1 parent 5d33229 commit 6653046

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

distribution/tools/server-cli/src/main/java/org/elasticsearch/server/cli/MachineDependentHeap.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
import org.elasticsearch.cluster.node.DiscoveryNodeRole;
1313
import org.elasticsearch.common.settings.Settings;
14+
import org.elasticsearch.common.util.FeatureFlag;
1415
import org.elasticsearch.node.NodeRoleSettings;
1516

1617
import java.io.IOException;
@@ -37,6 +38,8 @@ public class MachineDependentHeap {
3738
protected static final long MAX_HEAP_SIZE = GB * 31; // 31GB
3839
protected static final long MIN_HEAP_SIZE = 1024 * 1024 * 128; // 128MB
3940

41+
private static final FeatureFlag KILL_NEW_ML_MEMORY_COMPUTATION_FEATURE_FLAG = new FeatureFlag("kill_new_ml_memory_computation");
42+
4043
public MachineDependentHeap() {}
4144

4245
/**
@@ -104,6 +107,10 @@ protected int getHeapSizeMb(Settings nodeSettings, MachineNodeRole role, long av
104107
case ML_ONLY -> {
105108
double heapFractionBelow16GB = 0.4 / (1.0 + JvmErgonomics.DIRECT_MEMORY_TO_HEAP_FACTOR);
106109
double heapFractionAbove16GB = 0.1 / (1.0 + JvmErgonomics.DIRECT_MEMORY_TO_HEAP_FACTOR);
110+
if (KILL_NEW_ML_MEMORY_COMPUTATION_FEATURE_FLAG.isEnabled()) {
111+
heapFractionBelow16GB = 0.4;
112+
heapFractionAbove16GB = 0.1;
113+
}
107114
if (availableMemory <= GB * 16) {
108115
yield mb((long) (availableMemory * heapFractionBelow16GB), 4);
109116
} else {

x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/MachineLearning.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import org.elasticsearch.common.settings.SettingsModule;
4242
import org.elasticsearch.common.unit.ByteSizeValue;
4343
import org.elasticsearch.common.unit.Processors;
44+
import org.elasticsearch.common.util.FeatureFlag;
4445
import org.elasticsearch.common.util.concurrent.EsExecutors;
4546
import org.elasticsearch.core.TimeValue;
4647
import org.elasticsearch.env.Environment;
@@ -557,6 +558,8 @@ public class MachineLearning extends Plugin
557558
License.OperationMode.PLATINUM
558559
);
559560

561+
private static final FeatureFlag KILL_NEW_ML_MEMORY_COMPUTATION_FEATURE_FLAG = new FeatureFlag("kill_new_ml_memory_computation");
562+
560563
@Override
561564
public Map<String, Processor.Factory> getProcessors(Processor.Parameters parameters) {
562565
if (this.enabled == false) {
@@ -846,7 +849,11 @@ public Settings additionalSettings() {
846849
Long.toString(OsProbe.getInstance().osStats().getMem().getAdjustedTotal().getBytes())
847850
);
848851

849-
addMlNodeAttribute(additionalSettings, jvmSizeAttrName, Long.toString(JvmInfo.jvmInfo().getMem().getTotalMax().getBytes()));
852+
long jvmSize = JvmInfo.jvmInfo().getMem().getTotalMax().getBytes();
853+
if (KILL_NEW_ML_MEMORY_COMPUTATION_FEATURE_FLAG.isEnabled()) {
854+
jvmSize = Runtime.getRuntime().maxMemory();
855+
}
856+
addMlNodeAttribute(additionalSettings, jvmSizeAttrName, Long.toString(jvmSize));
850857
addMlNodeAttribute(
851858
additionalSettings,
852859
deprecatedAllocatedProcessorsAttrName,

0 commit comments

Comments
 (0)