2010-06-29 7 views
11

ich eine Anfrage haben einen Linux-Server (vorzugsweise Ubuntu 64bit Server), und Java (64-Bit) auf der folgenden Maschine zu installieren:wie kann JVM verwenden mehr als 4 GB Arbeitsspeicher

  • Intel Core2Quad Q8200 - 2,33 GHz
  • 8gb DDR2 rAM
  • 2x 320GB SATA HDD in weichem RAID1 Spiegel (Spiegel)

Das Problem ist, wie System- und Java zu konfigurieren, weil ich JVM brauche mehr zu verwenden als 4 GB Arbeitsspeicher.

Es kann nicht auf vielen virtuellen Maschinen verteilt werden. Es gibt Daten mehr als 4 GB groß und es muss im Speicher sein, weil HDD langsam ist und Leistung kritisch ist.

Dies ist eine Frage zu Konfiguration und Leistung und ich bin an Kommentaren interessiert, wenn jemand Erfahrung hat?

vielen Dank für mich auf diese helfen ...

+1

Vergessen Sie nicht, dass Sie etwas Speicher für Nicht-Heap und das Betriebssystem lassen müssen. 4 GB sind wahrscheinlich die Grenze, die Sie mit diesem Gerät sicher erreichen können. BTW: Speicher ist heutzutage ziemlich billig, Sie könnten erwägen, mehr zu bekommen, wenn Sie es wirklich brauchen. Leistung ist wirklich kritisch. –

+0

Aye, diese Spezifikation ist ziemlich konservativ für einen Dev-Workstation, geschweige denn einen Hochleistungsserver. – skaffman

Antwort

8

Ein 64-Bit-JVM kein Problem mit riesigen Haufen haben sollte, sicherlich viel größer als Ihre verfügbaren RAM. Nur erhöhen die Heap-Größe, wenn Sie die JVM starten, zum Beispiel:

java -Xmx6g 

Sie verwendet haben, um die 64-Bit-Flags, um anzugeben (mit -d64), aber ich glaube nicht, das nicht mehr notwendig ist.

32-Bit-JVMs können etwa 3 GB Heap verwalten.

+0

Minor Nitpick: Sie meinen 'Java-Xmx6g' (oder 'Java-Xmx6144m'). Die Angabe der Größe als GB führt zu einem Fehler "Ungültige maximale Heapgröße". – Confusion

+0

@Confusion: Ganz richtig, danke für die Korrektur. – skaffman

+0

Sie haben ihm vor einer Stunde für die Korrektur gedankt, aber Ihre Antwort nicht korrigiert? Schande. – Malfist

-1

Wenn Sie eine 64-Bit-Ubuntu installieren, ich glaube, dass

sudo apt-get install sun-java6-jdk 

Sie eine 64-Bit-Java gibt.


EDIT: Das 64-Bit-Java kann Ihnen mit den entsprechenden Switches so viel Speicher zur Verfügung stellen, wie Sie benötigen. Das Limit liegt bei den 32-Bit-JVMs, die je nach Betriebssystem nicht über 2-4 Gb gehen können.

1

skaffmans Antwort, die das erforderliche Flag für die Zuweisung von 6 GB Speicher bietet, ist korrekt. Wenn das 'g' den Trick nicht ausübt, sollten Sie versuchen, 6000m auszuprobieren (überprüfen Sie den Link unten für Details zu Flags/Plattform)

Für weitere Optionen finden Sie hier nützliche Informationen zu allen verfügbaren Optionen für die Java HotSpot VM .

http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp

(Verhaltens- und Leistungsoptionen stehen zur Verfügung. Plattformspezifische Links auch auf dieser Seite)

0

JVM (vor allem 64bit) nicht zögern, alle Speicher nehmen und 4Gb ist kein Problem. Installieren Sie einfach 64-Bit-Ubuntu und Standard-JRE-Paket wird auch 64-Bit.

Achten Sie auch besonders darauf, wie Ihre Daten gespeichert werden. Auch hier ist das 64-Bit-JDK sehr hungrig nach Speicher wegen des höheren Aufwands für Zeiger usw. Wenn Sie also diese 4 GB in kleinen Blöcken in einer Datenstruktur verteilen, werden 8 GB nicht ausreichen.

Verwandte Themen