Ограничения памяти процесса и процессора в 64-битной Linux?

Возможный дубликат:
Практические ограничения Память JVM и загрузка ЦП?

Допустим, деньги не были ограничивающим фактором, и я хотел написать программу на Java, которая работала бы на одной мощной машине.

Цель состояла бы в том, чтобы заставить Java-программу работать как можно быстрее, без необходимости что-либо менять или обращаться к диску.

Допустим, этот компьютер имеет:

  • 1 ТБ ОЗУ (64 модуля DIMM по 16 ГБ)
  • 64 ядра процессора (8 8-ядерных процессоров)
  • под управлением 64-битной Ubuntu

Может ли один экземпляр Java-программы, работающей в JVM, использовать такое количество оперативной памяти и процессоров?

Существуют ли какие-либо практические соображения, которые могут ограничить использование и эффективность?

  • Аппаратные ограничения (например, могут ли ЦП работать вместе на ТБ памяти)?
  • Ограничения процесса ОС (память и потоки)?
  • Ограничения памяти/кучи JVM?
  • Ограничения потока JVM?

Может ли обычный исполняемый файл (т. е. программа на языке C) использовать указанные выше характеристики?

Спасибо, Гален


person Galen    schedule 12.07.2011    source источник
comment
Это интересный вопрос, но не похоже, что он связан с системным администрированием. Я подозреваю, что вы можете получить гораздо лучший ответ на programmers.stackexchange.com   -  person Zoredache    schedule 12.07.2011


Ответы (1)


Да, JVM может использовать столько оперативной памяти и процессоров. На самом деле у меня есть машина с почти идентичной конфигурацией, как вы описываете, за исключением того, что она работает под управлением RedHat. Имейте в виду, что ваше приложение должно быть многопоточным, чтобы использовать все ядра процессора.

Что касается аппаратных ограничений, всегда есть проблемы с кэшированием, которые могут быть довольно сложными, но практическое правило заключается в том, что если все ваши потоки случайным образом обращаются к нескольким областям ОЗУ, вы, скорее всего, получите низкую когерентность кэша. Если они поражают примерно одни и те же области ОЗУ, скорее всего, вы получите лучшие попадания в кеш.

Для конкретики было бы неплохо знать, какие приложения вы планируете писать.

person Rich    schedule 12.07.2011
comment
Кстати, я получил эту машину от IBM год назад примерно за 80 тысяч долларов. - person Rich; 12.07.2011