Для 32-битного ядра, каковы плюсы / минусы PAE по сравнению с не-PAE?

8

Я использую Ubuntu 12.04 32-bit. Мои ядра - это ядра PAE. Я знаю, что это ядра, которые мы можем использовать для 32-битных ОС, которые имеют 4 ГБ ОЗУ, чтобы использовать все 4 ГБ ОЗУ.

Моя система 32-битная. Поэтому я подумал, что они мне не нужны. Какие преимущества и недостатки у меня будут, если я продолжу работать с ядрами PAE?

raja@badfox:~$ uname -a
Linux badfox 3.2.0-24-generic-pae #39-Ubuntu SMP Mon May 21 18:54:21 UTC 2012 i686 i686 i386 GNU/Linux
rɑːdʒɑ
источник
3
PAE позволяет 32-разрядной системе использовать более 3,2 ГБ оперативной памяти. Если у вас меньше оперативной памяти или у вас 64-битная система, она вам не нужна. Я не знаю проблем с этим.
Марти Фрид
@EliahKagan Моя система 32-битная и моя ОС 32-битная, но мои ядра PAE. Каковы же преимущества и недостатки ядер PAE, если я продолжу работать с ними?
12:03
1
Основная проблема заключается в следующем: сколько оперативной памяти имеет ваша система? Преимущество PAE заключается в том, что с вашей 32-битной ОС вы получаете доступ к более чем 3,2 ГБ оперативной памяти. Это причина существования. 64-разрядная ОС уже может получить доступ к гораздо большему объему памяти, поэтому ей не требуется помощь.
Марти Фрид
@EliahKagan: Спасибо, но я думаю, что, возможно, ответ izx затмит все, что я мог написать. :) Я не дал ответа, потому что не знал наверняка, какие были недостатки, если они вообще были, только то, что они были невелики и никогда не беспокоили меня. Но вы можете быть правы, что простой ответ в этом случае может быть лучшим.
Марти Фрид

Ответы:

21

Краткий ответ: перейдите на 64-битный режим, если это возможно, что быстрее, чем на 32-битном режиме PAE / non-PAE; если вы не можете, не PAE может быть на 1-2% быстрее, чем PAE.


В теории PAE имеет небольшие накладные расходы по сравнению с не-PAE ...

  • Большим преимуществом PAE является то, что 32-разрядный процессор / система может использовать более 4 ГБ ОЗУ.
  • Но это требует немного больше накладных расходов по сравнению с не-PAE, что может привести к незначительному снижению производительности.
    • Вот очень простое объяснение: в режиме без PAE 32-битный процессор должен искать (обращаться) к двум таблицам для доступа к адресу физической памяти; в режиме PAE для этого необходимо найти три таблицы. Один дополнительный поиск требует некоторого (очень малого) дополнительного времени, что накладывает дополнительные накладные расходы.
    • В конце этого ответа есть два изображения из статьи PAE Википедии , иллюстрирующие вышеуказанный момент.
    • Бит NX / XD : ядро ​​PAE также поддерживает бит No-eXecute / eXecute-Disable на 64-битных процессорах; это может помочь предотвратить некоторые виды вирусных / злонамеренных атак (переполнение буфера), но для IMO это не имеет большого значения при выборе 32-битных ядер для Ubuntu.

... но на практике эти накладные расходы незначительны (почти ничего) ...

  • Phoronix сделал ряд испытаний на протяжении многих лет , которые показывают , что в системах с 4 Гб или меньше , то PAE ядро может быть не более чем приблизительно 5% медленнее , чем ядро не-PAE. Это только для конкретного тестового приложения; обычная разница составляет менее 1%.

и 64-битные почти всегда превосходят ОБА 32-битные ядра - дерзайте!

  • Единственная вещь, о которой говорят вышеупомянутые тесты Phoronix, это то, что 64-битная система - король, даже если у вас меньше 4 ГБ ОЗУ (хотя я бы рекомендовал 1 ГБ как минимум)
  • Если у вас 64-битный процессор - как правило, что-либо после 2006 года, кроме Intel Atoms - вы, вероятно, теряете производительность , используя 32-битное ядро!

Сравнение доступа к таблице страниц без PAE и PAE:

  1. Non-PAE

    введите описание изображения здесь

  2. PAE

    введите описание изображения здесь

иш
источник
2
Итак, если у вас менее 4 ГБ ОЗУ, вы говорите, что 64-битная скорость быстрее, чем 32-битная? Это почему? Кроме того, вы не упоминаете о проблемах совместимости с 32-разрядным программным обеспечением, которое либо еще не преобразовано, либо содержит ошибки в преобразовании - думаете ли вы, что это когда-либо проблема? Кажется, что это было, но, возможно, это дело прошлого.
Марти Фрид
Конечно, над комментарием есть смысл подумать.
rʒɑdʒɑ
@MartyFried Иногда 64-битная версия быстрее 32-битной, потому что компиляторы работают лучше для 64-битной системы. Я не помню деталей, так что, возможно, кто-то, кто действительно может расширить это, но я думаю, что это относится к самому большому фрагменту непрерывной памяти (даже намного меньше, чем 2 ГБ / 4 Гиб), которую может выделить программа.
Элия ​​Каган
2
Другие вещи, которые следует иметь в виду: (1) 64-битные могут быть быстрее из-за использования инструкций, добавленных в набор команд AMD64 / EM64T (тогда как с 32-битными большинство программ компилируются с наименьшим общим знаменателем для, в лучшем случае , i686) и (2) 64-разрядная может быть быстрее на машинах со значительно менее 4 ГБ ОЗУ, поскольку память в ОЗУ и память, подкачанная на диск, являются частью пространства виртуальной памяти каждой программы, и это пространство виртуальной памяти адресуется с 32-разрядными указателями в 32-разрядной системе и 64-разрядными указателями в 64-разрядной системе. Pehraps izx может поговорить с некоторыми из этих вопросов.
Элия ​​Каган
2
@EliahKagan: как вы думаете, этот Q может быть хорошим кандидатом на канонический вопрос: «У меня 64-битный процессор, но менее 4 ГБ оперативной памяти. Какое ядро ​​из трех я должен выбрать?»
иш
2

Для некоторых реальных данных вот некоторые тесты, которые я собрал для установок i386, i386-pae и amd64 на нетбуках на базе Atom и ноутбуках на базе Sandybridge:

http://kernel.ubuntu.com/~cking/power-benchmarking/blueprint-foundations-p-64bit-by-default/hpmini-and-x220-tests/results-3/results.txt

..может дать некоторое представление о плюсах и минусах.

Колин Ян Кинг
источник
0

У меня были серьезные проблемы с использованием 32-битного 12.04 с определенным программным обеспечением (файловая система zfs), раскрывающего ограничения vmalloc для 32-битных систем (я пытался до смерти настроить параметры как pae, так и non-pae, vmalloc и depmod ... но нет успех). Вероятно, это особый случай, но его можно привести в качестве примера. Ограничение где-то глубоко внутри 32-битных ядер составляет 1 ГБ, даже если можно использовать до 3,2 ГБ.

Перейти на 64-бит, если вы можете. Я вполне уверен, что Tou vcan ... Я думаю, что на сегодняшний день, он (= 64-битное ядро ​​процессора) должен поддерживаться практически любой работающей системой. Последующее «обновление» как-то непросто (это фактически означает переустановку, даже если dpkg и копирование / etc / и / home / могут помочь запустить новую установку ..), но все же должно быть приемлемым. Я думаю, что с 64-битной версией проблем нет, даже если вы по какой-то причине вынуждены использовать старое / закрытое 32-битное приложение или некоторые библиотеки.

Коро
источник