[英]how can JVM use more than 4gb of memory
我有一個請求在下面的機器上安裝Linux服務器(最好是Ubuntu 64位服務器)和Java(64位):
問題是如何配置系統和Java,因為我需要JVM使用超過4GB的內存。
它無法在許多虛擬機上分發。 有超過4GB的數據,它必須在內存中,因為硬盤速度慢,性能至關重要。
這是一個配置和性能問題,如果有人有經驗,我對評論感興趣嗎?
非常感謝你幫助我...
一個64位的JVM應該沒有任何問題,因為巨型堆肯定比你的可用RAM大得多。 只需在啟動JVM時增加堆大小,例如:
java -Xmx6g
您曾經必須指定64位標志(使用-d64
),但我不認為這是必要的。
32位JVM可以管理3GB的堆。
skaffman的答案提供了分配6GB內存所需的標志是正確的。 如果'g'沒有做到這一點,你可能想嘗試6000米(有關標志/平台的詳細信息,請查看下面的鏈接)
對於其他選項,您可以在此處找到有關Java HotSpot VM的所有可用選項的有用信息。
http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp
(可提供行為和性能選項。此頁面上還提供了平台特定鏈接)
JVM(尤其是64位)毫不猶豫地占用了所有內存,4Gb不是問題。 只需安裝64位Ubuntu,default-jre包也將是64位。
還要特別注意數據如何存儲在內存中。 同樣,由於指針等的開銷較高,64位JDK非常渴望內存。因此,如果在某些數據結構中將這些4Gb分布在小塊中,8Gb將是不夠的。
如果您安裝64位Ubuntu,我相信
sudo apt-get install sun-java6-jdk
為您提供64位Java。
編輯:64位Java可以通過適當的開關為您提供所需的內存。 限制是使用32位JVM,根據操作系統的不同,它不能超過2-4 Gb。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.