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

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

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

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

2 ответа

Решение

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

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

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

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

Другие вопросы по тегам