Skip to content

Commit 3cb6110

Browse files
committed
logs for debugging heap size
1 parent 560464e commit 3cb6110

File tree

3 files changed

+41
-1
lines changed

3 files changed

+41
-1
lines changed

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99

1010
package org.elasticsearch.server.cli;
1111

12+
import org.apache.logging.log4j.LogManager;
13+
import org.apache.logging.log4j.Logger;
1214
import org.elasticsearch.common.Strings;
1315
import org.elasticsearch.core.SuppressForbidden;
1416

@@ -33,6 +35,8 @@ class JvmOption {
3335
private final String value;
3436
private final String origin;
3537

38+
private static final Logger logger = LogManager.getLogger(JvmOption.class);
39+
3640
JvmOption(String value, String origin) {
3741
if (origin == null) {
3842
throw new IllegalStateException(Strings.format("""
@@ -43,6 +47,11 @@ class JvmOption {
4347
this.origin = origin;
4448
}
4549

50+
@Override
51+
public String toString() {
52+
return "{value=" + value + ", origin=" + origin + "}";
53+
}
54+
4655
public Optional<String> getValue() {
4756
return Optional.ofNullable(value);
4857
}
@@ -124,6 +133,7 @@ private static List<String> flagsFinal(final List<String> userDefinedJvmOptions)
124133
);
125134
throw new RuntimeException(message);
126135
} else {
136+
logger.info("@@@ JvmOption flagsFinal: {}", String.join("\n", output));
127137
return output;
128138
}
129139
}

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

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99

1010
package org.elasticsearch.server.cli;
1111

12+
import org.apache.logging.log4j.LogManager;
13+
import org.apache.logging.log4j.Logger;
14+
import org.elasticsearch.cli.Terminal;
1215
import org.elasticsearch.cluster.node.DiscoveryNodeRole;
1316
import org.elasticsearch.common.settings.Settings;
1417
import org.elasticsearch.common.util.FeatureFlag;
@@ -40,7 +43,17 @@ public class MachineDependentHeap {
4043

4144
private static final FeatureFlag NEW_ML_MEMORY_COMPUTATION_FEATURE_FLAG = new FeatureFlag("new_ml_memory_computation");
4245

43-
public MachineDependentHeap() {}
46+
private static final Logger logger = LogManager.getLogger(MachineDependentHeap.class);
47+
48+
private final Terminal terminal;
49+
50+
public MachineDependentHeap() {
51+
this.terminal = null;
52+
}
53+
54+
public MachineDependentHeap(Terminal terminal) {
55+
this.terminal = terminal;
56+
}
4457

4558
/**
4659
* Calculate heap options.
@@ -57,6 +70,11 @@ public final List<String> determineHeapSettings(
5770
) throws IOException, InterruptedException {
5871
// TODO: this could be more efficient, to only parse final options once
5972
final Map<String, JvmOption> finalJvmOptions = JvmOption.findFinalOptions(userDefinedJvmOptions);
73+
if (terminal != null) {
74+
terminal.println(
75+
"@@@ MachineDependentHeap determineHeapSettings: MaxHeap=" + finalJvmOptions.get("MaxHeapSize") + " FeatureFlag="
76+
+ NEW_ML_MEMORY_COMPUTATION_FEATURE_FLAG.isEnabled());
77+
}
6078
if (isMaxHeapSpecified(finalJvmOptions) || isMinHeapSpecified(finalJvmOptions) || isInitialHeapSpecified(finalJvmOptions)) {
6179
// User has explicitly set memory settings so we use those
6280
return Collections.emptyList();
@@ -65,6 +83,13 @@ public final List<String> determineHeapSettings(
6583
List<DiscoveryNodeRole> roles = NodeRoleSettings.NODE_ROLES_SETTING.get(nodeSettings);
6684
long availableSystemMemory = systemMemoryInfo.availableSystemMemory();
6785
MachineNodeRole nodeRole = mapNodeRole(roles);
86+
if (terminal != null) {
87+
terminal.println("@@@ MachineDependentHeap determineHeapSettings: setMaxHeap: " + getHeapSizeMb(
88+
nodeSettings,
89+
nodeRole,
90+
availableSystemMemory
91+
));
92+
}
6893
return options(getHeapSizeMb(nodeSettings, nodeRole, availableSystemMemory));
6994
}
7095

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,8 +265,13 @@ protected Command loadTool(Map<String, String> sysprops, String toolname, String
265265

266266
// protected to allow tests to override
267267
protected ServerProcess startServer(Terminal terminal, ProcessInfo processInfo, ServerArgs args) throws Exception {
268+
terminal.println("@@@ ServerCli startServer");
269+
268270
var tempDir = ServerProcessUtils.setupTempDir(processInfo);
269271
var jvmOptions = JvmOptionsParser.determineJvmOptions(args, processInfo, tempDir, new MachineDependentHeap());
272+
273+
terminal.println("@@@ ServerCli startServer: jvmOptions=" + jvmOptions);
274+
270275
var serverProcessBuilder = new ServerProcessBuilder().withTerminal(terminal)
271276
.withProcessInfo(processInfo)
272277
.withServerArgs(args)

0 commit comments

Comments
 (0)