четверг, 9 июля 2009 г.

Почему windows 2003 Std для нехалемов это зло?

На одном из блогов 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.

Понравился пост? Подпишись через RSSRSS, EmailEmail или twitter!

Комментариев нет: