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 .hamcrest .Matcher ;
1516
@@ -55,7 +56,8 @@ public void testMasterOnlyOptions() throws Exception {
5556 assertHeapOptions (64 , containsInAnyOrder ("-Xmx31744m" , "-Xms31744m" ), "master" );
5657 }
5758
58- public void testMlOnlyOptions () throws Exception {
59+ public void testMlOnlyOptions_new () throws Exception {
60+ assumeTrue ("feature flag must be enabled for new memory computation" , new FeatureFlag ("new_ml_memory_computation" ).isEnabled ());
5961 assertHeapOptions (1 , containsInAnyOrder ("-Xmx272m" , "-Xms272m" ), "ml" );
6062 assertHeapOptions (4 , containsInAnyOrder ("-Xmx1092m" , "-Xms1092m" ), "ml" );
6163 assertHeapOptions (32 , containsInAnyOrder ("-Xmx5460m" , "-Xms5460m" ), "ml" );
@@ -65,6 +67,20 @@ public void testMlOnlyOptions() throws Exception {
6567 assertHeapOptions (263 , containsInAnyOrder ("-Xmx21228m" , "-Xms21228m" ), "ml" );
6668 }
6769
70+ public void testMlOnlyOptions_old () throws Exception {
71+ assumeTrue (
72+ "feature flag must be disabled for old memory computation" ,
73+ new FeatureFlag ("new_ml_memory_computation" ).isEnabled () == false
74+ );
75+ assertHeapOptions (1 , containsInAnyOrder ("-Xmx408m" , "-Xms408m" ), "ml" );
76+ assertHeapOptions (4 , containsInAnyOrder ("-Xmx1636m" , "-Xms1636m" ), "ml" );
77+ assertHeapOptions (32 , containsInAnyOrder ("-Xmx8192m" , "-Xms8192m" ), "ml" );
78+ assertHeapOptions (64 , containsInAnyOrder ("-Xmx11468m" , "-Xms11468m" ), "ml" );
79+ // We'd never see a node this big in Cloud, but this assertion proves that the 31GB absolute maximum
80+ // eventually kicks in (because 0.4 * 16 + 0.1 * (263 - 16) > 31)
81+ assertHeapOptions (263 , containsInAnyOrder ("-Xmx31744m" , "-Xms31744m" ), "ml" );
82+ }
83+
6884 public void testDataNodeOptions () throws Exception {
6985 assertHeapOptions (1 , containsInAnyOrder ("-Xmx512m" , "-Xms512m" ), "data" );
7086 assertHeapOptions (8 , containsInAnyOrder ("-Xmx4096m" , "-Xms4096m" ), "data" );
0 commit comments