I'm trying a fresh install of ES8.4 on Debian 11, starting using systemctl start elasticsearch
. I notice that there are now two Java processes permanently running, where on all previous versions I have used (up to 8.2) there has only been one. Is this expected? ISTR there is a similar Java process on previous versions early on while starting, but which quickly goes away.
I ask because I am running in a pretty low-powered environment, and this process consumes an additional 6% of my available memory, which is quite significant. On a big machine, it probably wouldn't matter, but this is a significant increase for me.
(I wonder if it is also related to the need to increase systemctl timeout on all version 8s, which previously was not needed. ES won't start (to the point that systemctl understands - it has lots still to do even after that) in the 90s default. I know how to fix that, but it didn't previously need to have the timeout increased even though it wasn't particularly faster starting).
Here's the output from ps and top after everything has stabilized (this is a fresh install, so doesn't have any of my own indexes in it yet, has xpack security turned off as it is only used within a single node, no network traffic)...
$ ps aux | grep elastic
elastic+ 1481 6.1 5.8 2657800 88496 ? Ssl 14:45 0:19 /usr/share/elasticsearch/jdk/bin/java -Xms4m -Xmx64m -XX:+UseSerialGC -Dcli.name=server -Dcli.script=/usr/share/elasticsearch/bin/elasticsearch -Dcli.libs=lib/tools/server-cli -Des.path.home=/usr/share/elasticsearch -Des.path.conf=/etc/elasticsearch -Des.distribution.type=deb -cp /usr/share/elasticsearch/lib/*:/usr/share/elasticsearch/lib/cli-launcher/* org.elasticsearch.launcher.CliToolLauncher -p /var/run/elasticsearch/elasticsearch.pid --quiet
elastic+ 1543 72.4 58.4 4371648 884684 ? Sl 14:45 3:48 /usr/share/elasticsearch/jdk/bin/java -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -Djava.security.manager=allow -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Dlog4j2.formatMsgNoLookups=true -Djava.locale.providers=SPI,COMPAT --add-opens=java.base/java.io=ALL-UNNAMED -XX:+UseG1GC -Djava.io.tmpdir=/tmp/elasticsearch-16788180029063263356 -XX:+HeapDumpOnOutOfMemoryError -XX:+ExitOnOutOfMemoryError -XX:HeapDumpPath=/var/lib/elasticsearch -XX:ErrorFile=/var/log/elasticsearch/hs_err_pid%p.log -Xlog:gc*,gc+age=trace,safepoint:file=/var/log/elasticsearch/gc.log:utctime,pid,tags:filecount=32,filesize=64m -Xms600m -Xmx600m -XX:MaxDirectMemorySize=314572800 -XX:G1HeapRegionSize=4m -XX:InitiatingHeapOccupancyPercent=30 -XX:G1ReservePercent=15 -Des.distribution.type=deb --module-path /usr/share/elasticsearch/lib --add-modules=jdk.net -m org.elasticsearch.server/org.elasticsearch.bootstrap.Elasticsearch
$ top
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1543 elastic+ 20 0 4372680 896012 29384 S 2.6 59.2 5:22.02 java
1481 elastic+ 20 0 2657800 89560 26608 S 0.0 5.9 0:21.24 java
...