我正在本地安装SAP Hybris1811。由于在SOLR索引作业期间遇到OutOfMemory异常,因此我试图增加其内存大小。
但是,我无法通过任何尝试的方法可靠地增加内存。有时在进行很多工作(多次构建应用程序,重新启动等)后,Hybris能够查看和使用设置的内存(我使用后台软件检查了此设置),但是大多数情况下,默认情况下它默认为2 GB并且内存不足迅速。
我尝试过的:
set JAVA_OPTS=-Xms10G -Xmx10G;
中的catalina.bat
tomcat.javaoptions=-Xmx10G -Xms10G
中的local.properties
为本地Hybris服务器可靠地设置更高的内存的正确方法是什么?
请在您的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
经过一些挖掘,我发现只有当我尝试使用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