На одном из блогов HP появилась не так давно отличная заметка про то, как используюется память на новых системах (с нехалемами) и почему Windows 2003 Standard является далеко не лучшим выбором ОС для данных машин.
Если вкратце, то Windows 2003 Standand имеет ряд ограничений: не поддерживает NUMA и не поддерживает более 4ГБ памяти. С другой стороны, память в новых системах организована так, что если установлено, скажем 4x1GB (3 на одном процессоре и 1 на другом), то сначала выделяется память с первого процессора, а потом уже со второго:
Зеленым цветом показана память процессора #1, а синим - процессора #2. Как следствие, помимо того, что у некоторых участнов памяти полоса пропускания меньше, чем у других. И в дополнение - проблема с латентностью, вызванная отсутствием поддержки NUMA.
Можно поставить по 2 модуля памяти на процессор, но проблемы это не решает - пропускная способность будет одинаковая, но ниже максимальной. Еще один вариант - включить в BIOS опцию "node interleaving". Это позволит равномерно распределить память, но не решит проблему с латентностью, так как с большой будем продолжать попадать на память "чужого" процессора:
Можно пойти еще дальше и поставить 6 модулей памяти. Это полностью решит проблему с различной пропускной способностью, но никак не повлияет на латентность (а кроме того, 2ГБ будут просто "потеряны").
Таким образом, как ни крути, а использовать двухпроцессорные системы на нехалемах с Windows Server 2003 Std - не лучший вариант. Решения? Если поставить один процессор, то никаких из упомянутых проблем не будет (так как не будет NUMA). Другой вариант использовать поддерживающие NUMA ОС: Windows Server 2008 или Windows Server 2003 Enterprise.
Комментариев нет:
Отправить комментарий