1010package org .elasticsearch .server .cli ;
1111
1212import org .elasticsearch .common .settings .Settings ;
13+ import org .elasticsearch .common .util .FeatureFlag ;
1314import org .elasticsearch .test .ESTestCase ;
1415import org .elasticsearch .test .ESTestCase .WithoutSecurityManager ;
1516import org .hamcrest .Matcher ;
@@ -57,7 +58,8 @@ public void testMasterOnlyOptions() throws Exception {
5758 assertHeapOptions (64 , containsInAnyOrder ("-Xmx31744m" , "-Xms31744m" ), "master" );
5859 }
5960
60- public void testMlOnlyOptions () throws Exception {
61+ public void testMlOnlyOptions_new () throws Exception {
62+ assumeTrue ("feature flag must be enabled for new memory computation" , new FeatureFlag ("new_ml_memory_computation" ).isEnabled ());
6163 assertHeapOptions (1 , containsInAnyOrder ("-Xmx272m" , "-Xms272m" ), "ml" );
6264 assertHeapOptions (4 , containsInAnyOrder ("-Xmx1092m" , "-Xms1092m" ), "ml" );
6365 assertHeapOptions (32 , containsInAnyOrder ("-Xmx5460m" , "-Xms5460m" ), "ml" );
@@ -67,6 +69,20 @@ public void testMlOnlyOptions() throws Exception {
6769 assertHeapOptions (263 , containsInAnyOrder ("-Xmx21228m" , "-Xms21228m" ), "ml" );
6870 }
6971
72+ public void testMlOnlyOptions_old () throws Exception {
73+ assumeTrue (
74+ "feature flag must be disabled for old memory computation" ,
75+ new FeatureFlag ("new_ml_memory_computation" ).isEnabled () == false
76+ );
77+ assertHeapOptions (1 , containsInAnyOrder ("-Xmx408m" , "-Xms408m" ), "ml" );
78+ assertHeapOptions (4 , containsInAnyOrder ("-Xmx1636m" , "-Xms1636m" ), "ml" );
79+ assertHeapOptions (32 , containsInAnyOrder ("-Xmx8192m" , "-Xms8192m" ), "ml" );
80+ assertHeapOptions (64 , containsInAnyOrder ("-Xmx11468m" , "-Xms11468m" ), "ml" );
81+ // We'd never see a node this big in Cloud, but this assertion proves that the 31GB absolute maximum
82+ // eventually kicks in (because 0.4 * 16 + 0.1 * (263 - 16) > 31)
83+ assertHeapOptions (263 , containsInAnyOrder ("-Xmx31744m" , "-Xms31744m" ), "ml" );
84+ }
85+
7086 public void testDataNodeOptions () throws Exception {
7187 assertHeapOptions (1 , containsInAnyOrder ("-Xmx512m" , "-Xms512m" ), "data" );
7288 assertHeapOptions (8 , containsInAnyOrder ("-Xmx4096m" , "-Xms4096m" ), "data" );
0 commit comments