Para un kernel de 32 bits, ¿cuáles son las ventajas y desventajas de PAE frente a no PAE?

8

Estoy usando Ubuntu 12.04 de 32 bits. Mis núcleos son núcleos PAE. Sé que estos son los núcleos que podemos usar para sistemas operativos de 32 bits que tienen 4 GB de RAM, para utilizar los 4 GB de RAM.

Mi sistema es un sistema de 32 bits. Entonces pensé que no los necesitaba. ¿Cuáles son las ventajas y desventajas que tendré si sigo ejecutando núcleos 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ʒɑ
fuente
3
PAE permite que un sistema de 32 bits use más de 3.2GB de RAM. Si tiene menos RAM, o si tiene un sistema de 64 bits, no lo necesita. No conozco ningún problema con eso.
Marty Fried
@EliahKagan Mi sistema de 32 bits y mi sistema operativo de 32 bits, pero mis Kernels PAE. Entonces, ¿cuáles son las ventajas y desventajas con los núcleos PAE si sigo corriendo con ellos?
rɑːdʒɑ
1
El problema principal es este: ¿Cuánta RAM tiene su sistema? La ventaja de PAE es que le permite, con su sistema operativo de 32 bits, acceder a más de 3.2 GB de RAM. Esa es su razón de ser. Un sistema operativo de 64 bits ya puede acceder a mucha más memoria, por lo que no necesita ninguna ayuda.
Marty Fried
@EliahKagan: Gracias, pero creo que tal vez la respuesta de izx eclipsará todo lo que pueda escribir. :) No respondí porque no sabía con certeza cuáles eran las desventajas, si las hubiera, solo que no eran grandes y nunca me molestaron. Pero puede tener razón en que una respuesta simple en este caso puede ser la mejor.
Marty Fried

Respuestas:

21

Respuesta corta: vaya a 64 bits si puede, que es más rápido que ambos PAE / no PAE de 32 bits; si no puede hacerlo, el no PAE puede ser 1-2% más rápido que el PAE.


En teoría, PAE tiene una ligera sobrecarga que no es PAE ...

  • La gran ventaja de PAE es que permite que un procesador / sistema de 32 bits use más de 4 GB de RAM
  • Pero esto requiere un poco más de sobrecarga que no sea PAE, lo que puede conducir a un rendimiento ligeramente menor.
    • Aquí hay una explicación muy simple: en modo no PAE, una CPU de 32 bits debe buscar (acceder) dos tablas para acceder a una dirección de memoria física; en modo PAE, debe buscar tres tablas para hacerlo. La única búsqueda adicional requiere algunos (muy pequeña) de tiempo extra, imponiendo así una sobrecarga adicional.
    • Al final de esta respuesta hay dos imágenes del artículo de Wikipedia PAE , que ilustran el punto anterior.
    • Bit NX / XD : el núcleo PAE también admite el bit No-eXecute / eXecute-Disable en procesadores de 64 bits; esto puede ayudar a prevenir algunos tipos de virus / ataques maliciosos (desbordamientos del búfer), pero en mi opinión, esto no importa mucho al elegir núcleos de 32 bits para Ubuntu.

... pero en la práctica esta sobrecarga es insignificante (casi nada) ...

  • Phoronix ha realizado una serie de pruebas a lo largo de los años que muestran que en sistemas con 4 GB o menos , el núcleo PAE puede ser, como máximo, aproximadamente un 5% más lento que el núcleo sin PAE. Esto es solo para una aplicación de prueba específica; La diferencia habitual es inferior al 1%.

y 64 bits casi siempre supera AMBOS núcleos de 32 bits, ¡adelante!

  • Lo único que los puntos de referencia de Phoronix anteriores le dicen es que 64 bits es el rey, incluso si tiene menos de 4 GB de RAM (aunque recomendaría 1 GB como mínimo)
  • Si tiene un procesador de 64 bits, generalmente después de 2006, excepto Intel Atoms, ¡probablemente esté perdiendo rendimiento al usar un kernel de 32 bits!

Comparación de accesos a tablas de páginas que no son PAE y PAE:

  1. No PAE

    ingrese la descripción de la imagen aquí

  2. PAE

    ingrese la descripción de la imagen aquí

ish
fuente
2
Entonces, si tiene menos de 4 GB de RAM, ¿está diciendo que 64 bits es más rápido que 32 bits? ¿Porqué es eso? Además, no menciona los problemas de compatibilidad con el software de 32 bits que aún no se ha convertido o tiene errores en la conversión. ¿Cree que esto es un problema? Parece que lo fue, pero tal vez esto sea cosa del pasado.
Marty Fried
Por supuesto, el comentario anterior tiene un punto para pensar.
rɑːdʒɑ
@MartyFried A veces, 64 bits es más rápido que 32 bits porque los compiladores hacen las cosas mejor para 64 bits. No recuerdo los detalles, por lo que tal vez alguien que lo haga puede ampliar eso, pero creo que se refiere a la mayor parte de la memoria contigua (incluso menos de 2GiB / 4Gib) que un programa puede asignar.
Eliah Kagan
2
Las otras cosas a tener en cuenta son (1) 64 bits puede ser más rápido debido al uso de instrucciones agregadas en el conjunto de instrucciones AMD64 / EM64T (mientras que con 32 bits la mayoría de los programas se compilan al mínimo común denominador para, en el mejor de los casos , i686) y (2) 64 bits pueden ser más rápidos en máquinas con considerablemente menos de 4 GiB de RAM porque la memoria en RAM y la memoria intercambiada en el disco son parte del espacio de memoria virtual de cada programa, y ​​ese espacio de memoria virtual se aborda con punteros de 32 bits en un sistema de 32 bits y punteros de 64 bits en un sistema de 64 bits. Pehraps izx puede hablar sobre algunos de estos problemas.
Eliah Kagan
2
@EliahKagan: ¿crees que esta Q podría ser un buen candidato para una Q canónica: "Tengo un procesador de 64 bits pero menos de 4 GB de RAM. ¿Qué núcleo de los tres debería elegir?"
ish
0

Tuve serios problemas al usar 32.04 de 32 bits con cierto software (sistema de archivos zfs), desvelando las limitaciones de vmalloc de los sistemas de 32 bits (he intentado el ajuste de parámetros tanto pae como no pae y vmalloc y depmod, hasta la muerte ... pero no éxito). Probablemente sea un caso especial, pero podría darse como ejemplo. La limitación en algún lugar profundo dentro de los núcleos de 32 bits es de 1 GB, incluso si se pueden utilizar hasta unos 3,2 GB.

Ve por 64 bits si puedes. Estoy bastante seguro de que Tou vcan ... Supongo que hasta la fecha, (= 64bit cpu core) debería ser compatible con casi cualquier sistema en ejecución. La "actualización" posterior es de alguna manera incómoda (de hecho, significa reinstalar, incluso si dpkg y copiar / etc / y / home / pueden ayudar a ejecutar una nueva instalación en ejecución ...) pero aún así deberían ser aceptables. Creo que no hay problemas que temer con 64 bits, ni siquiera si se ve obligado a usar una aplicación de 32 bits de fuente antigua / cerrada o algunas bibliotecas por alguna razón.

coro
fuente