对于32位内核,PAE与非PAE有何优缺点?


8

我正在使用32位Ubuntu 12.04。我的内核是PAE内核。我知道这些是我们可以用于具有4 GB RAM的32位OS内核,以利用所有4GB 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

3
PAE允许32位系统使用超过3.2GB的RAM。如果您的RAM较少,或者您使用的是64位系统,则不需要它。我知道没有问题。
马蒂·弗里德

@EliahKagan我的系统是32位的,操作系统是32位的,但是我的内核PAE。因此,如果我继续使用它们,PAE内核的优缺点是什么?
rɑːdʒɑ

1
主要问题是:系统有多少RAM?PAE的优势在于,它允许您使用32位操作系统访问超过3.2GB的RAM。那就是存在的原因。64位操作系统已经可以访问更多内存,因此不需要任何帮助。
马蒂·弗里德

@EliahKagan:谢谢,但是我想也许izx的答案会让我能写的东西黯然失色。:)我没有给出答案,因为我不确定是否有缺点(如果有的话),只是缺点不大,而且从不打扰我。但是您可能是对的,在这种情况下,简单的答案可能是最好的。
马蒂·弗里德

Answers:


21

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


从理论上讲,PAE与非PAE相比有轻微的开销。

  • PAE的最大优势是允许32位处理器/系统使用超过4GB的RAM
  • 但是,与非PAE相比,这需要更多的开销,这可能导致性能略有下降。
    • 这是一个非常简单的解释:在非PAE模式下,一个32位CPU必须查找(访问)两个表以访问物理内存地址。在PAE模式下,它必须查找三个表才能这样做。一次额外的查找需要一些(非常小的)额外时间,从而带来了额外的开销。
    • 答案的最后是来自Wikipedia 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

    在此处输入图片说明


2
因此,如果您的RAM少于4GB,是说64位比32位快吗?这是为什么?另外,您没有提到尚未转换的32位软件的兼容性问题,或者转换中存在错误-您认为这是一个问题吗?看起来是这样,但也许这已成为过去。
马蒂·弗里德

当然以上评论有一点思考的地方。
rɑːdʒɑ

@MartyFried有时64位比32位要快,因为编译器在64位上做得更好。我不记得详细信息,所以也许有人可以对此进行扩展,但是我认为它与程序可以分配的最大连续内存块有关(甚至远小于2GiB / 4Gib)。
伊利亚·卡根

2
要记住的其他事项是(1)由于使用了AMD64 / EM64T指令集中添加的指令,因此64位可能更快(而对于32位,大多数程序最多被编译为最低公分母)。 ,i686)和(2)在RAM少于4 GiB的计算机上可能更快,因为RAM中的内存和交换到磁盘的内存都是每个程序的虚拟内存空间的一部分,并且已解决了虚拟内存空间的问题在32位系统上具有32位指针,在64位系统上具有64位指针。Pehraps izx可以解决其中一些问题。
伊利亚·卡根

2
@EliahKagan:您认为这个Q可能是标准Q的一个很好的候选者:“我有一个64位处理器,但RAM小于4 GB。我应该选择三个内核中的哪个内核?”
ish 2012年


0

我在使用某些软件(zfs文件系统)使用32位12.04时遇到了严重的麻烦,揭露了32位系统的vmalloc限制(我尝试了pae和non-pae以及vmalloc和depmod参数调整,以致死了……但是没有成功)。这可能是一种特殊情况,但可以作为示例。即使可以使用多达3.2 GB的内存,在32位内核深处的限制也只有1 GB。

如果可以,请选择64位。我非常确定Tou vcan ...我想到目前为止,几乎所有正在运行的系统都应该支持它(= 64位cpu核心)。以后的“升级”有点令人不安(实际上意味着重新安装,即使dpkg并复制/ etc /和/ home /可能有助于使新安装开始运行..),但仍然可以接受。我认为使用64位是没有问题的,即使出于某种原因您被迫使用旧的/封闭源32位应用程序或某些库也不会担心。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.