как JVM может использовать больше чем 4 ГБ памяти

У меня есть запрос для установки сервера Linux (предпочтительно сервер Ubuntu 64bit), и Java (64 бита) в следующую машину:

  • Intel Core2Quad Q8200 - 2,33 ГГц
  • Поршень DDR2 на 8 ГБ
  • 2x SATA на 320 ГБ жесткий диск в мягком зеркале RAID1 (зеркало)

Проблема состоит в том, как настроить систему и Java, потому что мне нужна JVM для использования больше чем 4 ГБ памяти.

Это не может быть распределено на многих виртуальных машинах. Существуют данные больше чем 4 ГБ шириной, и это должно быть в памяти, потому что жесткий диск является медленным, и производительность очень важна.

Это - конфигурация и вопрос о производительности, и я интересуюсь комментариями, если у кого-либо есть опыт?

большое спасибо за помощь мне на этом...

11
задан Peter Lawrey 29 June 2010 в 18:42
поделиться

4 ответа

JVM (особенно 64-битная) без промедления забирает всю память, и 4 Гбайт не проблема. Просто установите 64-разрядную версию Ubuntu, и пакет default-jre также будет 64-разрядным.

Также обратите особое внимание на то, как ваши данные хранятся в памяти. Опять же, 64-битный JDK очень голоден для памяти из-за более высоких накладных расходов на указатели и т. Д., Поэтому, если вы распределяете эти 4 Гб небольшими порциями в некоторой структуре данных, 8 Гб будет недостаточно.

0
ответ дан 3 December 2019 в 10:03
поделиться

64-битная JVM не должна иметь никаких проблем с гигантскими кучами, конечно, намного большими, чем ваша доступная RAM. Просто увеличьте размер кучи при запуске JVM, например:

java -Xmx6g

Раньше вам приходилось указывать 64-битный флаг (с помощью -d64 ), но я не думаю, что это больше необходимо.

32-битные JVM могут управлять примерно 3 ГБ кучи.

10
ответ дан 3 December 2019 в 10:03
поделиться

Если вы установите 64-битную Ubuntu, я полагаю, что

sudo apt-get install sun-java6-jdk

это даст вам 64-битную Java.


EDIT: 64-битная Java может дать вам столько памяти, сколько вам нужно с соответствующими переключателями. Ограничением являются 32-битные JVM, которые не могут превышать 2-4 Гб в зависимости от операционной системы.

-1
ответ дан 3 December 2019 в 10:03
поделиться

Ответ скаффмана, который предоставляет требуемый флаг для выделения 6 ГБ памяти, правильный. Если «g» не помогает, вы можете попробовать 6000 м (см. Ссылку ниже для получения подробной информации о флагах / платформе)

Для других опций вы можете найти полезную информацию обо всех доступных опциях для виртуальной машины Java HotSpot здесь.

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

(Доступны параметры поведения и производительности. На этой странице также доступны ссылки для конкретных платформ)

1
ответ дан 3 December 2019 в 10:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: