簡體   English   中英

為 memory 密集型應用程序增加 JVM 最大堆大小

[英]Increasing the JVM maximum heap size for memory intensive applications

我需要運行 Java memory 使用超過 2GB 的密集型應用程序,但我在增加堆最大大小時遇到問題。 到目前為止,我已經嘗試了以下方法:

  • 設置-Xmx 參數,例如-Xmx3000m。 這種方法在創建 JVM 時失敗了。從我用谷歌搜索的結果來看,-Xmx 似乎必須小於 2GB。

  • 使用-XX:+AggressiveHeap 選項 當我嘗試這種方法時,我收到“內存不足”錯誤,提示堆大小為 1273.4 MB,即使我的計算機有 8GB 的 memory。

是否有另一種方法可以嘗試增加 JVM 的最大堆大小? 以下是計算機規格的摘要:

  • 操作系統:Windows 7(64 位)
  • 處理器:英特爾酷睿 i7 (2.66 GHz)
  • Memory:8GB
  • java-版本:
 java version "1.6.0_18" Java(TM) SE Runtime Environment (build 1.6.0_18-b07) Java HotSpot(TM) Client VM (build 16.0-b13, mixed mode, sharing)

在 32 位模式下使用 JVM 時,可以分配的最大堆大小為 1280 MB。 所以,如果你想超越它,你需要在 64 模式下調用 JVM。

您可以使用以下內容:

$ java -d64 -Xms512m -Xmx4g HelloWorld

在哪里,

  • -d64:將啟用 64 位 JVM
  • -Xms512m:將初始堆大小設置為 512 MB
  • -Xmx4g:將最大堆大小設置為 4 GB

您可以根據需要調整 -Xms 和 -Xmx (YMMV)

關於 JVM 性能調整的非常好的資源,可能需要查看: http : //java.sun.com/javase/technologies/hotspot/gc/gc_tuning_6.html

Oracle獲取 64 位 JVM。

我相信 2GB 的限制是針對 32 位 Java 的。 我認為 v1.6 總是 64 位,但嘗試強制 64 位模式只是為了查看:添加 -d64 選項。

32 位 Java 被限制為大約 1.4 到 1.6 GB。

Oracle 32 位堆常見問題解答

引用

32 位 JVM 的最大理論堆限制為 4G。 由於可用交換、內核地址空間使用、內存碎片和 VM 開銷等各種附加限制,實際上限制可能要低得多。 在大多數現代 32 位 Windows 系統上,最大堆大小范圍為 1.4G 到 1.6G。 在 32 位 Solaris 內核上,地址空間限制為 2G。 在運行 32 位 VM 的 64 位操作系統上,最大堆大小可以更高,在許多 Solaris 系統上接近 4G。

以下 conf 對我有用:

JAVA_HOME=/JDK1.7.51-64/jdk1.7.0_51/
PATH=/JDK1.7.51-64/jdk1.7.0_51/bin:$PATH
export PATH
export JAVA_HOME

JVM_ARGS="-d64 -Xms1024m -Xmx15360m -server"

/JDK1.7.51-64/jdk1.7.0_51/bin/java $JVM_ARGS -jar `dirname $0`/ApacheJMeter.jar "$@"

對於 memory 密集型應用程序,GraalVm 可以作為更好的替代方案。 提供 32 GB 作為最大堆大小和其他好處。 熱點 vs Graal

就我而言,

-Xms1024M -Xmx1024M 正常工作

-Xms1024M -Xmx2048M 結果:無法為對象堆保留足夠的空間

使用 JVM 64 位后,它允許使用 2GB RAM,因為我使用的是 win server 2012

請查看多個操作系統上 JVM 32 位可用的最大堆大小用於 JVM 32 位的 Xmx

https://www.codementor.io/@suryab/does-32-bit-or-64-bit-jvm-matter-anymore-w0sa2rk6z

我有“類似”的內存問題,通過JSONReader節點解析400mb json文件。

我在knime.ini中增加了-Xmx12228m,但堆積空間似乎上限為5462mb

在此輸入圖像描述

我的筆記本電腦有16GB的內存,所以這應該足夠了吧?

- >安裝細節:knime_3.6.2 \\ plugins / org.knime.binary.jre.win32.x86_64_1.8.0.152-01 / jre / bin \\ server \\ jvm.dll

謝謝,

H

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM