对于 32 位内核,PAE 与非 PAE 的优缺点是什么?

rɑː*_*dʒɑ 8 kernel 32-bit ram pae 12.04

我正在使用 Ubuntu 12.04 32 位。我的内核是 PAE 内核。我知道这些是我们可以用于具有 4 GB RAM 的 32 位操作系统的内核,以利用所有 4 GB 的 RAM。

我的系统是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
Run Code Online (Sandbox Code Playgroud)

ish*_*ish 21

简短回答:如果可以,请使用 64 位,这比 PAE/非 PAE 32 位都快;如果不能,非 PAE 可能比 PAE 快 1-2%。


理论上 PAE 比非 PAE 有轻微的开销......

  • PAE 的一大优势是允许 32 位处理器/系统使用超过 4GB 的 RAM
  • 但这比非 PAE 需要更多的开销,这可能会导致性能略有下降。
    • 这里有一个很简单的解释:在非PAE模式下,一个32位的CPU必须查找(访问)两个表才能访问一个物理内存地址;在 PAE 模式下,它必须查找三个表才能这样做。一次额外的查找需要一些(非常少的)额外时间,因此会产生额外的开销。
    • 在这个答案的最后是来自维基百科 PAE 文章的两张图片,说明了上述观点。
    • NX/XD 位:PAE 内核还支持 64 位处理器上的 No-eXecute/eXecute-Disable 位;这可以帮助防止某些类型的病毒/恶意攻击(缓冲区溢出),但是 IMO 在为 Ubuntu 选择 32 位内核时这并不重要。

...但实际上这个开销可以忽略不计(几乎没有)......

  • Phoronix 多年来进行了大量测试,结果表明在 4GB 或更少的系统上,PAE 内核最多可能比非 PAE 内核慢约 5%。这仅适用于特定的测试应用程序;通常的差异小于 1%。

并且 64 位几乎总是胜过 32 位内核 - 去吧!

  • 上面的 Phoronix 基准测试告诉您的一件事是 64 位为王——即使您的 RAM 少于 4GB(尽管我建议至少 1GB)
  • 如果你有一个 64 位处理器——通常是 2006 年之后的处理器,除了 Intel Atoms——你可能会因为使用 32 位内核而损失性能

比较非 PAE 与 PAE 页表访问:

  1. 非 PAE

    在此处输入图片说明

  2. PAE

    在此处输入图片说明

  • 那么,如果您的 RAM 少于 4GB,您是说 64 位比 32 位快吗?这是为什么?此外,您没有提到尚未转换或转换中存在错误的 32 位软件的兼容性问题 - 您认为这是否有问题吗?似乎是这样,但也许这已成为过去。 (2认同)
  • 要记住的其他事情是 (1) 64 位可能更快,因为使用了 AMD64/EM64T 指令集中添加的指令(而 32 位大多数程序编译为最低公分母,充其量、i686) 和 (2) 64 位在 RAM 远小于 4 GiB 的机器上可能更快,因为 RAM 中的内存和交换到磁盘的内存都是每个程序的虚拟内存空间的一部分,并且该虚拟内存空间被寻址在 32 位系统上使用 32 位指针,在 64 位系统上使用 64 位指针。Pehraps izx 可以解决其中的一些问题。 (2认同)
  • @EliahKagan:您认为这个 Q 可能是规范 Q 的一个很好的候选者:*“我有一个 64 位处理器,但内存不足 4 GB。我应该选择三个内核中的哪个内核?”* (2认同)