【发布时间】:2013-10-19 23:15:03
【问题描述】:
TL;DR
我在具有 8 GB RAM 的 Windows Server R2 64 位计算机上安装了 Apache Solr。默认情况下,JVM 似乎使用了 ~256 MB 的内存。由于我有一些相当大的文件用于索引,有时我会得到 Java 堆空间 OutOfMemoryError。
我应该如何增加 Solr 可用的内存大小?
更多详情
我在网上找到的大多数documentation / posts 都指向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 服务的命令行(同样,这里不熟悉语法)。有一个 similar answer 用于基于 Ubuntu 的安装,但脚本文件不同。 - 在上述更改后运行
/Bitnami/solr-4.5.0-0/serviceinstall.bat REMOVE和serviceinstall.bat INSTALL
以下是 Solr 的仪表板屏幕截图。
有什么想法吗?
更新 1
/Bitnami/solr-4.5.0-0/apache-solr/scripts/ 中有一个 serviceinstall.bat 文件,其中包含我尝试修改但未能获得预期结果的 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...) 以及语法应该是什么?
【问题讨论】:
-
我会确保您使用的是 64 位版本,默认应该是主内存的 1/4 或 2 GB。对于 32 位客户端 JVM,默认值为 128 MB 堆,其余可以是共享库和线程堆栈。
-
@PeterLawrey 从提供的installer 链接中可以看出,Windows 仅支持 x86。
-
根据this thread,solr安装目录中应该有
D:\BitNami\solr-4.5.0-0/apache-solr/scripts/ctl.bat之类的东西,可以指定JVM设置 -
@rchukh 太可悲了。当您在 Windows 上使用 64 位 JVM 时会发生什么。
-
嗯...正如我所见 - 有一个
++JvmOptions=-XX:MaxPermSize=128M,所以如果你愿意,你可能可以更改大小并添加两行 -++JvmOptions=-Xms1024M和++JvmOptions=-Xmx1024M- 紧随其后.
标签: java solr jvm-arguments bitnami