6

我正在使用 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
4

1 回答 1

7

您需要添加-Xmx500m之前的start.jar.

附加信息 -

Initial Heap size -Xms<size>
Maximum Heap size -Xmx<size>

要找出您需要的当前正在运行的进程的堆大小jstat -gc <pid>。详情请看这里

于 2013-11-05T13:46:05.650 回答