Для 32-битного ядра, каковы плюсы / минусы PAE по сравнению с не-PAE?
Я использую 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
3 ответа
Краткий ответ: перейдите на 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%.
- Тесты для системы 12.04 LTS - 8 ГБ!
- Тесты для систем 11.04 - 4 и 8 ГБ
и 64-битные почти всегда превосходят ОБА 32-битные ядра - дерзайте!
- Единственная вещь, о которой говорят вышеупомянутые тесты Phoronix, это то, что 64-битная система - король, даже если у вас меньше 4 ГБ ОЗУ (хотя я бы рекомендовал 1 ГБ как минимум)
- Если у вас 64-битный процессор - как правило, что-либо после 2006 года, кроме Intel Atoms - вы, вероятно, теряете производительность, используя 32-битное ядро!
Сравнение доступа к таблице страниц без PAE и PAE:
Non-PAE
PAE
Для некоторых реальных данных вот некоторые тесты, которые я собрал для установок i386, i386-pae и amd64 на нетбуках на базе Atom и ноутбуках на базе Sandybridge:
..может дать некоторое представление о плюсах и минусах.
У меня были серьезные проблемы с использованием 32-битного 12.04 с определенным программным обеспечением (файловая система zfs), раскрывающего ограничения vmalloc для 32-битных систем (я пытался до смерти настроить параметры как pae, так и non-pae, vmalloc и depmod... но нет успех). Вероятно, это особый случай, но его можно привести в качестве примера. Ограничение где-то глубоко внутри 32-битных ядер составляет 1 ГБ, даже если можно использовать до 3,2 ГБ.
Перейти на 64-бит, если вы можете. Я вполне уверен, что Tou vcan... Я думаю, что на сегодняшний день, он (=64-битное ядро процессора) должен поддерживаться практически любой работающей системой. Последующее "обновление" как-то непросто (на самом деле это означает переустановку, даже если dpkg и копирование /etc/ и /home/ могут помочь запустить новую установку..), но все же должно быть приемлемым. Я думаю, что с 64-битной версией проблем нет, даже если вы по какой-то причине вынуждены использовать старое / закрытое 32-битное приложение или некоторые библиотеки.