Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Большой объём памяти в x86 windows

Автор: eEye
Дата сообщения: 08.11.2008 20:33
Большой объём памяти в x86 windows

Здравствуйте.

Остро встал вопрос об установке большого объёма памяти, 8 гигобайт на 32 битную систему, как многие знают 32 битные системы уже имеют проблемы с 4 гб озу. Прочитв множество статей и обсуждений в форумах не смог получить чёткого представления о поддерживаемой объёме памяти в 32 битных серверных системах windows. (64 битную не позволяет вера ставить)

Речь пойдет о Windows Server 2003 Enterprise (и в целом об сеймействе win server 2003). Понял, что PAE – это поддержка большого объема памяти со стороны железа и операционки, а AWE – это ее поддержка со стороны софта. И вся проблема в том, что такой поддержкой обладает специальный софт, оперирующий огромными объемами данных(например Microsoft SQL Server, у меня такого софта не будет. Из статейговорится, даже если Windows определит всю доступную память, пользу это не принесет. Причина в том, что область памяти за пределами 4 Гб в 32-битной среде может быть доступна только приложениям, написанным с использованием интерфейса AWE (Address Windowing Extension).
Вот здесь для меня возникает множество вопросов, опирируя данными этой таблицы
непонятна работа с большим объёмом памяти этих серверных систем, а конкретно по таблице:
Standard Edition: Максимальный объем оперативной памяти - 4 ГБ (как у win XP)
Enterprise Edition: Максимальный объем оперативной памяти - 32 гб для компьютеров на базе процессора х86
Datacenter Edition: Максимальный объем оперативной памяти - 64 гб для компьютеров на базе процессора х86
Web Edition: Максимальный объем оперативной памяти - 2 гб (странный выпуск, но меня в данной теме он не интересует)
Standard Edition и Web Edition отбрасываются из-за поддержки малого объёма памяти, Datacenter Edition из-за того что это (если рассматривать только поддержку объёма памяти, а не остальной функционал), тоже самое что Enterprise Edition, но с более большим объёмом озу.

Итак, Enterprise Edition поддерживает 32 гб для рядовых х86 процессоров, но непонятно, это 32 или 64 битная система, но по логике не вижу смысла ставить 32 битную систему на процессор поддерживаемый х86 архитектуру. Если я прав и это 32 битные системы, то как же статьи про PAE в начале темы, PAE ведь присутствует в данном семействе систем. Если я не прав и это 64 битные системы имеются в виду, то можноли с уверенностью сказать, что ВСЕ 32 битные системы поддерживают до 4 гб озу (но видимые 3.5 - 3.8 из них обычно). А если прав, то мои 8 гб будут нормально видны для софта и работать с ним или они видны из-за PAE и работать с с таким объёмом озу будет только специальный софт?
Автор: stfv
Дата сообщения: 08.11.2008 23:37
eEye
Нужно смотреть на сайте производителя:
http://www.microsoft.com/Rus/WindowsServer2003/evaluation/features/compareeditions.mspx
Автор: maxhl
Дата сообщения: 08.11.2008 23:58
eEye
Да, если программа поддерживает AWE, то для нее будет видна вся память, которая доступна для операционной системы. Только вот этим преобразованием адресов занимается программная часть, а не аппаратная - в связи с этим тормоза на преобразование адресов.
Но! Зачем такой гемор?!
Для программ, скомпилированных под x64 будет оптимально использовать x64 среду.
Автор: eEye
Дата сообщения: 09.11.2008 00:22
stfv, 1) по сноске написано: "4 32-разрядная версия Enterprise Edition и 64-разрядная версия Standard Edition поддерживают до 32 ГБ оперативной памяти.", но непонятно, как же она это адресует, то есть будет ли нормально работать в приложениях, которые не поддерживают AWE? Ведь 2^32 4 гигабайта с копейками максимум что адресуется в 32 битных системах.
p.s. Не спорю, а лишь уточняю для себя непонятные вещи.

2) В графе "Максимальный объем оперативной памяти 32 ГБ", статус "Частично поддерживается", такой же вопрос, будут ли приложения без поддерки AWE нормально работать?


maxhl, в большей степени я занимаюсь координированием и предоставляю железо + ещё чем по мелочи, а отдельным софтом занимается отдельный человек, к примеру взять игровой сервер team fortress 2, апдейты чуть-ли не каждый месяц, обновление автоматическое с сервера происходит под 32 битную системы, под 64 админ говорит траблы. еще пример, банальный, но всё же, вов (мангос эмуль), каждые 2-3 заплатки, компил занимает от 30 до 50 минут с добавлением нескольких десятков патчей, каждый раз проблемно делать. cod4, сервер один встраиваемый в клиент, не видел 64 битной поддержки.
Автор: stfv
Дата сообщения: 09.11.2008 00:52
eEye
А в чём собственно вопрос?
Если ты принципиально не хочешь ставить 64-х разрядную систему, то других вариантов просто не существует - поддерживают приложения AWE или нет.
Автор: eEye
Дата сообщения: 09.11.2008 04:11
1) То есть математические подсчеты о адресации 32 разрядной системы (2^32=4294967296) характерны для всех 32 битных систем и никаким способом не заставить видить и использовать озу больше 4гб (3.5-3.8)? Даже в серверных системах?

2_ Уточняю про серверные, потому что на сайте MS в сравнительной таблице (выше по ссылке от Вас, stfv, есть в сноске: "4 32-разрядная версия Enterprise Edition и 64-разрядная версия Standard Edition поддерживают до 32 ГБ оперативной памяти.", этим больше всего заинтересовался. Хочется подробнее разузнать.
Автор: L38Crow
Дата сообщения: 09.11.2008 04:39
eEye - Если пользоваться грубыми аналогами, то для решения проблемы памяти больше 4 Гб на 32 битных серверах - придумали некие "костыли". Во-первых PAE (36 бит) режим адресации памяти (начиная помоему с Pentium Pro). Во вторых режим работы AWE для серверных ОС.

Грубо говоря работа с памятью через окно. Когда нужен следующий фрагмент памяти - сдвигаем окно и работаем с ним. Поэтому они и могут адресовать такое количество.

Но AWE требует поддержки от приложений. Т.е. грубо говоря само приложение должно это уметь. Понятно что такие монстры как MS SQL, MS Exchange это могут, но их единицы.

Все это надо учитывать при планировании больших объемов на 32 битных системах. Поэтому сейчас и идет переход на 64 битные системы.
Автор: FuzzyLogic
Дата сообщения: 09.11.2008 05:39
eEye
Во-первых x86 это 32-bit и заявленная поддержка памяти должна работать и для 32 и для 64 битных версии соотв. версии сервера. Так что вполне можно пользоваться 32-битной версией софтины.

Далее надо определиться как будут использоваться те самые 8GB памяти. Они нужны одному приложению или нескольким? Вы упомянули проблемы с разными софтинами под 64-бит, учитывайте то, что 32-битные приложения прекрасно работают и под 64-битными осями по большей части (если только это не драйвера или что-то подобное) единственный момент одно конкретное 32 битное приложение не сможет забрать себе больше 4GB если оно не поддерживает AWE. Но в тоже время это совсем не мешает поделить пресловутые 8GB скажем между четырьмя приложениями по 2GB каждому и это будет работать как под 32 так и под 64 битной осью.
Резюме:
1. под 32 или под 64битной ОС можно запускать 32битные приложения.
2. Естественно что 64-битные приложения можно запускать только под 64битной осью
3. Только 64-битное или 32-битное с поддержкой AWE приложение может забрать под себя одного больше 4GB (это к вопросу зачем нужно 8GB)
4. В любом случае приложения поделят между собой всю память доступную операционной системе
Автор: L38Crow
Дата сообщения: 09.11.2008 07:40
Если надумаете использовать x32 версию сервера, то не забудьте включить AWE режим в boot.ini. На прошлой неделе был в одной компании, там был SQL Server 2000 на Win2k3 установлен и 8Гиг памяти. Поскольку AWE не было включено, то SQL не использовал больше 2 Гиг и база начала здорово тормозить.

Еще один ньюанс надо иметь ввиду. При включении AWE в менеджере задач (taskmanager) вы не увидите весь объем памяти который использует приложение (например SQL Server). Такая специфика. Поэтому используйте Performance Monitor.

Все это касается 32 битной ОС Windows 2003 Server. Для 64 битной все по другому конечно. Намного прозрачнее и удобнее.
Автор: eEye
Дата сообщения: 09.11.2008 21:17
FuzzyLogic, спасибо, главное что вы объяснили, можно запускать много приложений и в сумме они наберут 8 гб, это мне и надо.

L38Crow, как включить AWE и нужен ли он если приложения будут до 1.5 гб потреблять, но в сумме все приложения наберут 8 гб и если нужно, то как включить? Я знаю только о включении PAE, а AWE должно программно поддерживаться, кажется.. ?
Автор: 1976ANDREI
Дата сообщения: 06.12.2008 18:41
Объём памяти для 32-битных систем свыше 4 GB поддерживается только на серверных машинах, где специальные методы адресации.
Автор: evgenb82
Дата сообщения: 03.04.2014 10:26
некропост

fix128 - поддержка памяти более 4 Гб в 32-разрядных Windows


Licensed Memory in 32-Bit Windows_Vista
PAE patch updated for Windows_8
Автор: evgenb82
Дата сообщения: 16.07.2015 09:25
некропост второй.

Предыдущие две ссылки относились к системам Window$ Vista/7/8/8.1.
С тех пор вышли Window$ 10 и KB3033929 для Window$ 7 SP1, там всё аналогично.
А в fix128 были добавлены изменения для их поддержки.
Метод Vista...10 патчит ядро, а также загрузчик, чтобы загрузить модифицированное ядро без цифровой подписи Micro$oft.

Кроме того, для Window$ XP существует аналогичный трюк.
Windows_XP Ram Limit (форум)
Как я преодолевал предел 4Гб на Windows_XP 32бит
Методы разные, китайский вставляет JMP в проверку объема, можно и NOP вставлять, как на форуме, а можно и при проверке менять само сравниваемое значение (т.е. увеличив его, увеличиваем и доступный размер памяти) как на geektimes. Вместе с ядром патчится HAL, чтобы включить двойную буферизацию, т.к. не все драйверы и устройства умеют работать с памятью выше 4 Гб. В этом случае буферы памяти ввода-вывода драйвера размещаются ниже 4 Гб, а HAL потом самостоятельно копирует данные в/из этого буфера в память выше 4 Гб, если расположенная там программа запросила эти данные. Нормальный драйвер должен это делать без посредника HAL. Как вариант, используют HAL из XP SP1, эта версия Window$ поддерживала память более 4 Гб.
Вот здесь про эту буферизацию:
Windows_XP SP3 - Remove the 4GB physical address / RAM limit and use up to 64GB RAM using PAE
Загрузчик в случае XP не патчится.
В fix128 добавлен среверсированный китайский вариант, т.к. лишь к нему не было исходников. Теперь есть.

Ну и до кучи, для Server_2003 тоже есть способы.
Здесь, например, патчится само значение лимита памяти:
Windows_2003 Server Standard memory patch
HAL и загрузчик для 2003 не патчатся.
В fix128 с небольшими изменениями этот метод добавлен тоже.
Автор: bomzzz
Дата сообщения: 13.08.2015 07:42
fix128v39.zip1,48 МБ (1 552 806 байт)
это удобный гуй просто, автоматически делающий все. у меня 36 битной адресации нет, все равно не проверить
Автор: evgenb82
Дата сообщения: 15.08.2015 12:54
bomzzz
Не просто удобный гуй. За основу взят PatchPae2, он вместе с исходником находится внутри SFX-архива. А потом поэтапно доработан для поддержки KB3033929, Window$ 10, XP, 2003, ещё к нему прилеплен мини-хелп для гиков командной строки и прочих пакетных файлов И этот модифицированный PatchPae2 завёрнут в гуй на VBS, да. На всякий случай - ссылка на [пока] обновляемую актуальную версию двумя постами выше лежит. И ещё этот гуй можно запускать в тихом режиме или в автоматическом режиме - для этого поддерживаются опции командной строки, например, -help.
Автор: ss661
Дата сообщения: 20.10.2015 11:11
новая версия на рутрэкере http://rutracker.org/forum/viewtopic.php?t=4694409&start=150
испытатели на Win Game edition http://game-edition.ru/pozhelaniya-i-predlozheniya/vklyuchenie-pae-v-ge/

Страницы: 1

Предыдущая тема: Ошибки при запуске Игр


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.