SAP Hybris-Tomcat忽略内存设置

问题描述 投票:0回答:2

我正在本地安装SAP Hybris1811。由于在SOLR索引作业期间遇到OutOfMemory异常,因此我试图增加其内存大小。

但是,我无法通过任何尝试的方法可靠地增加内存。有时在进行很多工作(多次构建应用程序,重新启动等)后,Hybris能够查看和使用设置的内存(我使用后台软件检查了此设置),但是大多数情况下,默认情况下它默认为2 GB并且内存不足迅速。

我尝试过的:

  • [set JAVA_OPTS=-Xms10G -Xmx10G;中的catalina.bat
  • [tomcat.javaoptions=-Xmx10G -Xms10G中的local.properties

为本地Hybris服务器可靠地设置更高的内存的正确方法是什么?

java tomcat jvm hybris
2个回答
5
投票

请在您的local.properties中尝试以下操作:

tomcat.generaloptions=-Xmx10G -ea -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dorg.tanukisoftware.wrapper.WrapperManager.mbean=true -Djava.endorsed.dirs="%CATALINA_HOME%/lib/endorsed" -Dcatalina.base=%CATALINA_BASE% -Dcatalina.home=%CATALINA_HOME% -Dfile.encoding=UTF-8  -Djava.util.logging.config.file=jdk_logging.properties -Djava.io.tmpdir="${HYBRIS_TEMP_DIR}"

请确保在执行此更改后执行ant。作为一般说明,每当进行与tomcat相关的任何更改时,都需要执行ant

对于生产环境,可以如下设置此属性:

java.mem=10G
tomcat.generaloptions=-Xmx${java.mem} -Xms${java.mem} -Xss256K -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+CMSClassUnloadingEnabled -XX:+UseCMSInitiatingOccupancyOnly -XX:+CMSParallelRemarkEnabled -XX:+ParallelRefProcEnabled -XX:+CMSScavengeBeforeRemark  -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:"${HYBRIS_LOG_DIR}/tomcat/java_gc.log" -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dorg.tanukisoftware.wrapper.WrapperManager.mbean=true -Djava.endorsed.dirs=../lib/endorsed -Dcatalina.base=%CATALINA_BASE% -Dcatalina.home=%CATALINA_HOME% -Dfile.encoding=UTF-8 -Djava.util.logging.config.file=jdk_logging.properties -Djava.io.tmpdir="${HYBRIS_TEMP_DIR}" -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000

1
投票

经过一些挖掘,我发现只有当我尝试使用debug参数运行Hybris服务器时,才会忽略内存限制。我发现我尝试使用tomcat.javaoptions设置的属性不在wrapper-debug.conf文件中,该文件在调试模式下启动服务器时使用。

长话短说:

[tomcat.javaoptions仅应用于默认的wrapper.conf文件,在使用诸如[[debug之类的任何参数”启动服务器时将被忽略。

要应用于wrapper-debug.conf的更改,我需要使用

tomcat.debugjavaoptions属性。

最后,我的具有工作内存限制的配置文件如下所示:

... tomcat.javaoptions=-Xmx10G -Xms5G tomcat.debugjavaoptions=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=n -Xmx10G -Xms5G

© www.soinside.com 2019 - 2024. All rights reserved.