TL;博士
我在具有 8 GB RAM 的 Windows Server R2 64 位机器上安装了Apache Solr 。默认情况下,JVM 似乎使用了 ~256 MB 的内存。因为我有一些相当大的文件用于索引,所以有时我会得到 Java 堆空间 OutOfMemoryError。
我应该如何增加 Solr 可用的内存大小?
更多细节
我在网上找到的大多数文档/帖子都指向类似的东西java -Xms1024m -Xmx2048m -jar start.jar
,但我没有通过命令行运行 Solr。它作为 Windows 服务运行。我想有一个配置选项可以在 Solr 安装文件夹中的某个地方设置它,但我找不到它(此外,对 Java 堆栈不是很熟悉,因为我是一个 .NET 开发人员)。
我尝试了几件事:
- 在中设置环境变量
/Bitnami/solr-4.5.0-0/scripts/setenv.bat
:set JAVA_OPTS="%JAVA_OPTS% -XX:MaxPermSize=1024m -Xms1024 -Xmx1024m"
- 修改
/Bitnami/solr-4.5.0-0/scripts/serviceinstall.bat
并尝试在JvmOptions
命令行中添加参数以安装 Jetty 服务(同样,这里不熟悉语法)。基于 Ubuntu 的安装有类似的答案,但脚本文件不同。 - 运行
/Bitnami/solr-4.5.0-0/serviceinstall.bat REMOVE
并serviceinstall.bat INSTALL
在上述更改之后
下面是 Solr 的仪表板屏幕截图。
任何想法?
更新 1
有一个serviceinstall.bat
文件/Bitnami/solr-4.5.0-0/apache-solr/scripts/
包含我尝试修改但未能获得预期结果的 Jvm 选项。这是文件中的那一行(添加换行符以更好地显示):
"D:\BitNami\solr-4.5.0-0/apache-solr\scripts\prunsrv.exe" //IS//solrJetty
--DisplayName="solrJetty"
--Install="D:\BitNami\solr-4.5.0-0/apache-solr\scripts\prunsrv.exe"
--LogPath="D:\BitNami\solr-4.5.0-0/apache-solr\logs"
--LogLevel=Debug
--StdOutput=auto
--StdError=auto
--StartMode=Java
--StopMode=Java
--Jvm=auto
++JvmOptions=-DSTOP.PORT=8079
++JvmOptions=-DSTOP.KEY=s3crEt
++JvmOptions=-Djetty.home="D:\BitNami\solr-4.5.0-0/apache-solr"
++JvmOptions=-Dsolr.solr.home="D:\BitNami\solr-4.5.0-0/apache-solr/solr"
--Jvm=auto
++JvmOptions=-Djetty.logs="D:\BitNami\solr-4.5.0-0/apache-solr\logs"
--JavaHome="D:\BitNami\solr-4.5.0-0\java"
++JvmOptions=-XX:MaxPermSize=128M
--Classpath="D:\BitNami\solr-4.5.0-0/apache-solr\lib\*";"D:\BitNami\solr-4.5.0-0/apache-solr\start.jar"
--StartClass=org.eclipse.jetty.start.Main
++StartParams="D:\BitNami\solr-4.5.0-0/apache-solr\etc\jetty.xml"
--StopClass=org.eclipse.jetty.start.Main
++StopParams=--stop
++StopParams=-DSTOP.PORT=8079
++StopParams=-DSTOP.KEY=s3crEt
有谁知道在哪里放置额外的 JvmOptions (Xmx, Xms ...) 以及语法应该是什么?