我在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?
答案 0 :(得分:0)
应该是
设置_JAVA_OPTIONS = -Xmx8192m -Xms8192m -Xmn4096m
而不是
设置_JAVA_OPTIONS = -Xmx8192m -Xms8192m -Xmn4096m
等号两边不应有任何空格。