我正在使用Jetty和Solr431运行Cygwin。
这是我用来启动Solr的.bat文件的内容:
@echo off
C:
chdir C:\cygwin\bin
bash -c "cd /cygdrive/c/Databases/apache-solr-3.5.0/example/; java -Dsolr.solr.home="./example-DIH/solr/" -jar start.jar"
在运行一段时间后,控制台窗口显示错误:
Java堆空间内存不足
如何查看现在分配了多少堆空间,如何增加它?我读到我需要在启动命令中添加-Xmx500M
之类的参数,但我不知道在哪里。
更新
使用jps命令我找到了正确的PID。
然后我得到了这些结果。我认为P
列会显示允许的堆空间,但我不知道我的命令参数是否有任何影响?
没有任何启动参数
jstat -gcutil 4932 5000
S0 S1 E O P YGC YGCT FGC FGCT GCT
100,00 0,00 74,91 65,67 99,23 300 0,348 4 0,146 0,494
100,00 0,00 74,91 65,67 99,23 300 0,348 4 0,146 0,494
带参数的
bash -c“cd /cygdrive/c/Databases/apache-solr-3.5.0/example/;java -Dsolr.solr.home =”./ example-DIH / solr /“ - jar -Xmx200m -Xmx400m start.jar” jstat -gcutil 2548 5000
S0 S1 E O P YGC YGCT FGC FGCT GCT
0,00 89,57 67,80 62,74 99,45 307 0,337 4 0,147 0,484
0,00 89,57 67,80 62,74 99,45 307 0,337 4 0,147 0,484
答案 0 :(得分:7)
您需要在-Xmx500m
之前添加start.jar
。
其他信息 -
Initial Heap size -Xms<size>
Maximum Heap size -Xmx<size>
要查找当前正在运行的进程的堆大小,您需要jstat -gc <pid>
。有关详细信息,请查看here。