Jruby on Rails没有正确地获取java堆参数

时间:2017-04-08 05:15:09

标签: java ruby-on-rails-4 tomcat7 heap-memory jrubyonrails

我在Windows上的Tomcat上运行Jruby on Rails,也使用sidekiq运行后台作业。当我尝试导入大型CSV文件时,我遇到了可怕的堆错误。

所以我尝试设置JAVA_OPTS

  

设置JAVA_OPTS = -Xmx8192m -Xms8192m -Xmn4096m

我开始不一致地得到堆错误。

尝试_JAVA_OPTIONS

  

设置_JAVA_OPTIONS = -Xmx8192m -Xms8192m -Xmn4096m

它获取了新的堆值;问题解决了。

在此之后我尝试了

  

java -XX:+ PrintFlagsFinal -version | grep HeapSize

$ java -XX:+PrintFlagsFinal -version | grep HeapSize
    uintx ErgoHeapSizeLimit                         = 0               {product}

    uintx HeapSizePerGCThread                       = 87241520        {product}

    uintx InitialHeapSize                          := 805102400       {product}

    uintx LargePageHeapSizeThreshold                = 134217728       {product}

    uintx MaxHeapSize                              := 4292870144      {product}

java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

当我将两者设置为相同时,为什么MaxHeapSize值大于initial?

1 个答案:

答案 0 :(得分:0)

应该是

  

设置_JAVA_OPTIONS = -Xmx8192m -Xms8192m -Xmn4096m

而不是

  

设置_JAVA_OPTIONS = -Xmx8192m -Xms8192m -Xmn4096m

等号两边不应有任何空格。