Назад | Перейти на главную страницу

Какая максимальная адресуемая оперативная память для процесса в Linux на 2P Opteron

Я занимаюсь биоинформатикой, где ограничение - это объем памяти (т.е. процесс не распараллеливается). Я вижу такие серверы, как Dell R715, которые имеют два разъема для процессоров Opteron 6100 и 128 ГБ оперативной памяти, которые можно использовать с модулями DIMM 16 x 8 ГБ.

С каждым ЦП связан банк модулей DIMM.

У меня вопрос: если я поставлю Linux на такую ​​машину, каждый процессор сможет адресовать только половину ОЗУ? Другими словами, если я запустил однопоточную программу под Linux, будет ли у этого процесса доступ к 128 ГБ ОЗУ или только к 64 ГБ?

Строго говоря, этот однопоточный процесс будет иметь доступ ко всей памяти, доступной серверу. Тебе не о чем беспокоиться.

У процесса будет доступ к все память в ОЗУ, но доступ к ее половине будет (теоретически) медленнее, чем доступ к другой ее половине. Я знаю, что VMWare-ESX знает о локальности памяти, поскольку пытается сохранить всю память для конкретной виртуальной машины на том же узле памяти, что и выполнение процесса, чтобы поддерживать высокую производительность.

Эта технология называется неоднородным доступом к памяти (NUMA). Скорее всего, на вашем компьютере с Linux уже есть необходимые биты (numastat должен возвращать данные). В numactl Программа назначает политику памяти вашим процессам, что может быть очень полезно, если вы пишете собственный код и хотите оптимизировать скорость памяти. Локальная память ЦП будет извлекаться быстрее, чем память в узле памяти другого ЦП, что может быть полезно для вас в зависимости от того, что вы с ней делаете.

Linux - это система с подкачкой по требованию, которая представляет виртуальное адресное пространство 2 ^ 64 -1 в 64-битной системе. VMM получит доступ ко всему плунжеру в коробке. Ядро Linux обрабатывает создание таблицы страниц, а не процесс.