Nifi即使停止也不会释放RAM

时间:2019-08-01 05:04:04

标签: apache-nifi

Nifi正在RAM中占用更多内存,并且在停止后也不会释放。 以下是屏幕快照,其中nifi已关闭但无法停止。 RAM的总大小为23GB,并且正在使用全部内存,当我输入JPS命令时,它将保留所有内存。即使我通过JPS命令杀死了processid,也不能杀死它。

有没有办法有效地进行垃圾回收。以上问题所需的任何配置。我在 bootstrap.conf 中给出了6至8 GB的堆大小。

enter image description here

1 个答案:

答案 0 :(得分:0)

NiFi运行两个过程-一个是bootstrap,另一个是主要应用程序。如果主应用程序死亡,则引导程序将重新启动它。通过运行pid确定引导过程的ps -ef | grep RunNiFi。您应该得到如下结果:

  502 31023 31021   0  9:48PM ttys002    0:03.37 /Users/alopresto/.jenv/versions/1.8/bin/java -cp /Users/alopresto/Workspace/nifi/nifi-assembly/target/nifi-1.10.0-SNAPSHOT-bin/nifi-1.10.0-SNAPSHOT/conf:/Users/alopresto/Workspace/nifi/nifi-assembly/target/nifi-1.10.0-SNAPSHOT-bin/nifi-1.10.0-SNAPSHOT/lib/bootstrap/* -Xms12m -Xmx24m -Dorg.apache.nifi.bootstrap.config.log.dir=/Users/alopresto/Workspace/nifi/nifi-assembly/target/nifi-1.10.0-SNAPSHOT-bin/nifi-1.10.0-SNAPSHOT/logs -Dorg.apache.nifi.bootstrap.config.pid.dir=/Users/alopresto/Workspace/nifi/nifi-assembly/target/nifi-1.10.0-SNAPSHOT-bin/nifi-1.10.0-SNAPSHOT/run -Dorg.apache.nifi.bootstrap.config.file=/Users/alopresto/Workspace/nifi/nifi-assembly/target/nifi-1.10.0-SNAPSHOT-bin/nifi-1.10.0-SNAPSHOT/conf/bootstrap.conf org.apache.nifi.bootstrap.RunNiFi start

然后您可以使用kill -9 31023(PID是第二列)取消此过程。这将杀死引导程序。现在,您可以通过运行kill -9 <nifi-pid>(在我的情况下为31024,如下所示,从ps -ef | grep nifi.NiFi的输出中运行,并验证为31023是父节点,来终止NiFi应用程序进程(第三列) ))。

  502 31024 31023   0  9:48PM ttys002    6:50.13 /Users/alopresto/.jenv/versions/1.8/bin/java -classpath /Users/alopresto/Workspace/nifi/nifi-assembly/target/nifi-1.10.0-SNAPSHOT-bin/nifi-1.10.0-SNAPSHOT/./conf:/Users/alopresto/Workspace/nifi/nifi-assembly/target/nifi-1.10.0-SNAPSHOT-bin/nifi-1.10.0-SNAPSHOT/./lib/jetty-schemas-3.1.jar:/Users/alopresto/Workspace/nifi/nifi-assembly/target/nifi-1.10.0-SNAPSHOT-bin/nifi-1.10.0-SNAPSHOT/./lib/nifi-runtime-1.10.0-SNAPSHOT.jar:/Users/alopresto/Workspace/nifi/nifi-assembly/target/nifi-1.10.0-SNAPSHOT-bin/nifi-1.10.0-SNAPSHOT/./lib/slf4j-api-1.7.26.jar:/Users/alopresto/Workspace/nifi/nifi-assembly/target/nifi-1.10.0-SNAPSHOT-bin/nifi-1.10.0-SNAPSHOT/./lib/nifi-api-1.10.0-SNAPSHOT.jar:/Users/alopresto/Workspace/nifi/nifi-assembly/target/nifi-1.10.0-SNAPSHOT-bin/nifi-1.10.0-SNAPSHOT/./lib/jcl-over-slf4j-1.7.26.jar:/Users/alopresto/Workspace/nifi/nifi-assembly/target/nifi-1.10.0-SNAPSHOT-bin/nifi-1.10.0-SNAPSHOT/./lib/nifi-framework-api-1.10.0-SNAPSHOT.jar:/Users/alopresto/Workspace/nifi/nifi-assembly/target/nifi-1.10.0-SNAPSHOT-bin/nifi-1.10.0-SNAPSHOT/./lib/javax.servlet-api-3.1.0.jar:/Users/alopresto/Workspace/nifi/nifi-assembly/target/nifi-1.10.0-SNAPSHOT-bin/nifi-1.10.0-SNAPSHOT/./lib/nifi-nar-utils-1.10.0-SNAPSHOT.jar:/Users/alopresto/Workspace/nifi/nifi-assembly/target/nifi-1.10.0-SNAPSHOT-bin/nifi-1.10.0-SNAPSHOT/./lib/logback-classic-1.2.3.jar:/Users/alopresto/Workspace/nifi/nifi-assembly/target/nifi-1.10.0-SNAPSHOT-bin/nifi-1.10.0-SNAPSHOT/./lib/nifi-properties-1.10.0-SNAPSHOT.jar:/Users/alopresto/Workspace/nifi/nifi-assembly/target/nifi-1.10.0-SNAPSHOT-bin/nifi-1.10.0-SNAPSHOT/./lib/jul-to-slf4j-1.7.26.jar:/Users/alopresto/Workspace/nifi/nifi-assembly/target/nifi-1.10.0-SNAPSHOT-bin/nifi-1.10.0-SNAPSHOT/./lib/logback-core-1.2.3.jar:/Users/alopresto/Workspace/nifi/nifi-assembly/target/nifi-1.10.0-SNAPSHOT-bin/nifi-1.10.0-SNAPSHOT/./lib/log4j-over-slf4j-1.7.26.jar -Dorg.apache.jasper.compiler.disablejsr199=true -Xmx512m -Xms512m -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000 -Djavax.security.auth.useSubjectCredsOnly=true -Djava.security.egd=file:/dev/urandom -Dsun.net.http.allowRestrictedHeaders=true -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -XX:+UseG1GC -Djava.protocol.handler.pkgs=sun.net.www.protocol -Dnifi.properties.file.path=/Users/alopresto/Workspace/nifi/nifi-assembly/target/nifi-1.10.0-SNAPSHOT-bin/nifi-1.10.0-SNAPSHOT/./conf/nifi.properties -Dnifi.bootstrap.listen.port=64753 -Dapp=NiFi -Dorg.apache.nifi.bootstrap.config.log.dir=/Users/alopresto/Workspace/nifi/nifi-assembly/target/nifi-1.10.0-SNAPSHOT-bin/nifi-1.10.0-SNAPSHOT/logs org.apache.nifi.NiFi

您还可以使用$ nifi.sh dump <file-to-dump.txt>进行线程转储,这会将线程转储放入指定的文件中。捕获的输出可以帮助确定出了什么问题。