Was sind für einen 32-Bit-Kernel die Vor- und Nachteile von PAE gegenüber Nicht-PAE?

8

Ich benutze Ubuntu 12.04 32-Bit. Meine Kernel sind PAE-Kernel. Ich weiß, dass dies die Kernel sind, die wir für 32-Bit-Betriebssysteme mit 4 GB RAM verwenden können, um alle 4 GB RAM zu nutzen.

Mein System ist ein 32-Bit-System. Also dachte ich, ich brauche sie nicht. Welche Vor- und Nachteile habe ich, wenn ich weiterhin PAE-Kernel verwende?

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ʒɑ
quelle
3
Mit PAE kann ein 32-Bit-System mehr als 3,2 GB RAM verwenden. Wenn Sie weniger RAM haben oder ein 64-Bit-System haben, brauchen Sie es nicht. Ich kenne keine Probleme damit.
Marty Fried
@EliahKagan Mein System 32-Bit und mein Betriebssystem 32-Bit, aber mein Kernel PAE. Was sind die Vor- und Nachteile von PAE-Kerneln, wenn ich mit ihnen weiterlaufe?
rɑːdʒɑ
1
Das Hauptproblem ist folgendes: Wie viel RAM hat Ihr System? Der Vorteil von PAE besteht darin, dass Sie mit Ihrem 32-Bit-Betriebssystem auf mehr als 3,2 GB RAM zugreifen können. Das ist der Grund für die Existenz. Ein 64-Bit-Betriebssystem kann bereits auf viel mehr Speicher zugreifen, sodass es keine Hilfe benötigt.
Marty Fried
@EliahKagan: Danke, aber ich denke, vielleicht wird die Antwort von izx alles in den Schatten stellen, was ich schreiben könnte. :) Ich habe es nicht beantwortet, weil ich nicht genau wusste, was die Nachteile waren, wenn überhaupt, nur dass sie nicht groß waren und mich nie störten. Aber Sie haben vielleicht Recht, dass eine einfache Antwort in diesem Fall am besten ist.
Marty Fried

Antworten:

21

Kurze Antwort: Gehen Sie 64-Bit, wenn Sie können, was schneller ist als sowohl PAE als auch Nicht-PAE 32-Bit; Wenn Sie dies nicht können, ist Nicht-PAE möglicherweise 1-2% schneller als PAE.


Theoretisch hat PAE einen leichten Overhead gegenüber Nicht-PAE ...

  • Der große Vorteil von PAE besteht darin, dass ein 32-Bit-Prozessor / System mehr als 4 GB RAM verwenden kann
  • Dies erfordert jedoch etwas mehr Overhead als bei Nicht-PAE, was zu einer leicht verminderten Leistung führen kann.
    • Hier eine sehr einfache Erklärung: Im Nicht-PAE-Modus muss eine 32-Bit-CPU zwei Tabellen suchen (darauf zugreifen) , um auf eine physische Speicheradresse zugreifen zu können. Im PAE-Modus müssen dazu drei Tabellen nachgeschlagen werden. Die eine zusätzliche Suche erfordert einige (sehr kleine) zusätzliche Zeit, wodurch zusätzlicher Aufwand entsteht.
    • Am Ende dieser Antwort befinden sich zwei Bilder aus dem Wikipedia PAE-Artikel , die den obigen Punkt veranschaulichen.
    • NX / XD-Bit : Der PAE-Kernel unterstützt auch das No-eXecute / eXecute-Disable-Bit auf 64-Bit-Prozessoren. Dies kann helfen, einige Arten von Viren / böswilligen Angriffen (Pufferüberläufe) zu verhindern, aber IMO spielt dies keine große Rolle, wenn Sie 32-Bit-Kernel für Ubuntu auswählen.

... aber in der Praxis ist dieser Aufwand vernachlässigbar (fast nichts) ...

  • Phoronix hat im Laufe der Jahre eine Reihe von Tests durchgeführt, die zeigen, dass auf Systemen mit 4 GB oder weniger der PAE-Kernel höchstens etwa 5% langsamer sein kann als der Nicht-PAE-Kernel. Dies gilt nur für eine bestimmte Testanwendung. Der übliche Unterschied beträgt weniger als 1%.

und 64-Bit schlägt fast immer BEIDE 32-Bit-Kernel - machen Sie es!

  • Die oben genannten Phoronix-Benchmarks sagen Ihnen, dass 64-Bit das A und O ist - selbst wenn Sie weniger als 4 GB RAM haben (obwohl ich mindestens 1 GB empfehlen würde).
  • Wenn Sie einen 64-Bit-Prozessor haben - im Allgemeinen alles nach 2006 außer Intel Atoms - verlieren Sie wahrscheinlich an Leistung, wenn Sie einen 32-Bit-Kernel verwenden!

Vergleichen von Nicht-PAE- und PAE-Seitentabellenzugriffen:

  1. Nicht-PAE

    Geben Sie hier die Bildbeschreibung ein

  2. PAE

    Geben Sie hier die Bildbeschreibung ein

ish
quelle
2
Wenn Sie also weniger als 4 GB RAM haben, sagen Sie dann, dass 64-Bit schneller als 32-Bit ist? Warum ist das so? Außerdem erwähnen Sie keine Kompatibilitätsprobleme mit 32-Bit-Software, die entweder noch nicht konvertiert wurde oder Fehler bei der Konvertierung aufweist. Glauben Sie, dass dies jemals ein Problem ist? Es scheint so zu sein, aber vielleicht gehört dies der Vergangenheit an.
Marty Fried
Natürlich haben die obigen Kommentare einen Grund zum Nachdenken.
rɑːdʒɑ
@MartyFried Manchmal ist 64-Bit schneller als 32-Bit, weil Compiler die Dinge für 64-Bit besser machen. Ich erinnere mich nicht an die Details, also kann vielleicht jemand, der dies tut, das erweitern, aber ich denke, es bezieht sich auf den größten Teil des zusammenhängenden Speichers (sogar deutlich weniger als 2GiB / 4Gib), den ein Programm zuweisen kann.
Eliah Kagan
2
Die anderen Dinge, die Sie beachten sollten, sind: (1) 64-Bit kann aufgrund der Verwendung von Anweisungen, die im AMD64 / EM64T-Befehlssatz hinzugefügt wurden, schneller sein (während bei 32-Bit die meisten Programme bestenfalls auf den kleinsten gemeinsamen Nenner kompiliert werden , i686) und (2) 64-Bit kann auf Computern mit erheblich weniger als 4 GiB RAM schneller sein, da sowohl der im RAM-Speicher als auch der auf die Festplatte ausgelagerte Speicher Teil des virtuellen Speicherbereichs jedes Programms sind und dieser virtuelle Speicherbereich angesprochen wird mit 32-Bit-Zeigern auf einem 32-Bit-System und 64-Bit-Zeigern auf einem 64-Bit-System. Pehraps izx kann zu einigen dieser Probleme sprechen.
Eliah Kagan
2
@EliahKagan: Glaubst du, dieses Q könnte ein guter Kandidat für ein kanonisches Q sein ? "Ich habe einen 64-Bit-Prozessor, aber weniger als 4 GB RAM. Welchen der drei Kernel sollte ich wählen?"
ish
0

Ich hatte ernsthafte Probleme bei der Verwendung von 32-Bit 12.04 mit bestimmter Software (zfs-Dateisystem) und enthüllte die vmalloc-Einschränkungen von 32-Bit-Systemen (ich habe versucht, sowohl pae als auch non-pae und vmalloc und depmod params zu optimieren, aber zu Tode ... aber nein Erfolg). Dies ist wahrscheinlich ein Sonderfall, könnte aber als Beispiel angeführt werden. Die Beschränkung irgendwo tief in 32-Bit-Kerneln beträgt 1 GB, selbst wenn bis zu 3,2 GB verwendet werden können.

Gehen Sie für 64-Bit, wenn Sie können. Ich bin mir ziemlich sicher, dass Tou vcan ... Ich denke, dass es (= 64-Bit-CPU-Kern) bisher von fast jedem laufenden System unterstützt werden sollte. Ein späteres "Upgrade" ist irgendwie unangenehm (es bedeutet in der Tat eine Neuinstallation, auch wenn dpkg und das Kopieren von / etc / und / home / dazu beitragen können, dass eine neue Installation ausgeführt wird ..), sollte aber dennoch akzeptabel sein. Ich denke, dass es mit 64-Bit keine Probleme gibt, vor denen man sich fürchten muss, auch wenn Sie aus irgendeinem Grund gezwungen sind, alte / geschlossene 32-Bit-Anwendungen oder einige Bibliotheken zu verwenden.

coro
quelle