Untuk kernel 32-bit, apa pro / kontra dari PAE vs non-PAE?

8

Saya menggunakan Ubuntu 12,04 32-bit. Kernel saya adalah kernel PAE. Saya tahu ini adalah kernel yang dapat kita gunakan untuk OS 32-bit yang memiliki 4 GB RAM, untuk memanfaatkan semua 4GB RAM.

Sistem saya adalah sistem 32-bit. Jadi saya pikir saya tidak membutuhkannya. Apa kelebihan dan kekurangan yang akan saya miliki jika saya tetap menjalankan kernel 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ʒɑ
sumber
3
PAE memungkinkan sistem 32-bit menggunakan lebih dari 3.2GB RAM. Jika Anda memiliki RAM lebih sedikit, atau jika Anda memiliki sistem 64-bit, Anda tidak membutuhkannya. Saya tahu tidak ada masalah dengan itu.
Marty Fried
@ EliahKagan Sistem saya 32-Bit dan OS saya 32-Bit tetapi kernel saya PAE. Jadi apa kelebihan dan kekurangannya dengan kernel PAE jika saya terus menjalankannya.
rɑːdʒɑ
1
Masalah utamanya adalah ini: Berapa banyak RAM yang dimiliki sistem Anda? Keuntungan dari PAE adalah memungkinkan Anda, dengan OS 32 bit Anda, untuk mengakses lebih dari 3.2GB RAM. Itulah alasan keberadaannya. OS 64-bit sudah dapat mengakses lebih banyak memori, sehingga tidak perlu bantuan apa pun.
Marty Fried
@ EliahKagan: Terima kasih, tapi saya pikir mungkin jawaban oleh izx akan menghapus apa pun yang bisa saya tulis. :) Saya tidak membuat jawaban karena saya tidak tahu pasti apa kerugiannya, jika ada, hanya saja itu tidak besar, dan tidak pernah mengganggu saya. Tetapi Anda mungkin benar bahwa jawaban sederhana dalam hal ini mungkin yang terbaik.
Marty Fried

Jawaban:

21

Jawaban singkat: Gunakan 64-bit jika Anda bisa, yang lebih cepat dari kedua PAE / non-PAE 32-bit; jika Anda tidak bisa, non-PAE mungkin 1-2% lebih cepat dari PAE.


Secara teori, PAE memiliki sedikit overhead daripada non-PAE ...

  • Keuntungan besar dari PAE adalah memungkinkan prosesor / sistem 32-bit untuk menggunakan lebih dari 4GB RAM
  • Tetapi ini membutuhkan sedikit lebih banyak overhead daripada non-PAE, yang dapat menyebabkan kinerja sedikit menurun.
    • Berikut adalah penjelasan yang sangat sederhana: dalam mode non-PAE, CPU 32-bit harus mencari (mengakses) dua tabel untuk mengakses alamat memori fisik; dalam mode PAE, harus mencari tiga tabel untuk melakukannya. Satu pencarian tambahan memerlukan beberapa waktu tambahan (sangat kecil), sehingga memaksakan overhead tambahan.
    • Pada akhir jawaban ini adalah dua gambar dari artikel PAE Wikipedia , menggambarkan poin di atas.
    • NX / XD bit : Kernel PAE juga mendukung bit No-eXecute / eXecute-Disable pada prosesor 64-bit; ini dapat membantu mencegah beberapa jenis serangan virus / jahat (buffer overflows), tetapi IMO ini tidak masalah ketika memilih kernel 32-bit untuk Ubuntu.

... tetapi dalam praktiknya overhead ini dapat diabaikan (hampir tidak ada) ...

  • Phoronix telah melakukan sejumlah pengujian selama bertahun-tahun yang menunjukkan bahwa pada sistem dengan 4GB atau kurang , kernel PAE mungkin paling banyak sekitar 5% lebih lambat daripada kernel non-PAE. Ini hanya untuk aplikasi tes tertentu; perbedaan biasanya kurang dari 1%.

dan 64-bit hampir selalu mengalahkan KEDUA kernel 32-bit - lakukanlah!

  • Satu hal yang dikatakan oleh benchmark Phoronix di atas adalah bahwa 64-bit adalah raja - bahkan jika Anda memiliki RAM kurang dari 4GB (walaupun saya akan merekomendasikan minimum 1GB)
  • Jika Anda memiliki prosesor 64-bit - umumnya apa saja setelah 2006 kecuali Intel Atoms - Anda mungkin kehilangan kinerja dengan menggunakan kernel 32-bit!

Membandingkan akses tabel halaman non-PAE vs PAE:

  1. Non-PAE

    masukkan deskripsi gambar di sini

  2. PAE

    masukkan deskripsi gambar di sini

ish
sumber
2
Jadi, jika Anda memiliki kurang dari 4GB RAM, apakah Anda mengatakan 64-bit lebih cepat dari 32-bit? Mengapa demikian? Juga, Anda tidak menyebutkan masalah kompatibilitas dengan perangkat lunak 32-bit yang belum dikonversi, atau memiliki bug dalam konversi - apakah menurut Anda ini merupakan masalah? Sepertinya memang begitu, tapi mungkin ini adalah masa lalu.
Marty Fried
Tentu saja komentar di atas ada benarnya.
rɑːdʒɑ
@ MartyFried Terkadang 64-bit lebih cepat dari 32-bit karena kompiler melakukan hal-hal yang lebih baik untuk 64-bit. Saya tidak ingat detailnya, jadi mungkin seseorang yang bisa mengembangkannya, tapi saya pikir itu berkaitan dengan sebagian besar memori yang berdekatan (bahkan kurang dari 2GiB / 4Gib) yang dapat dialokasikan oleh program.
Eliah Kagan
2
Hal-hal lain yang perlu diingat adalah (1) 64-bit mungkin lebih cepat karena penggunaan instruksi yang ditambahkan dalam set instruksi AMD64 / EM64T (sedangkan dengan 32-bit sebagian besar program dikompilasi ke common denominator terendah untuk, paling baik , i686), dan (2) 64-bit mungkin lebih cepat pada mesin dengan RAM kurang dari 4 GiB karena memori dalam RAM dan memori yang ditukar ke disk adalah bagian dari ruang memori virtual setiap program, dan bahwa ruang memori virtual ditangani dengan pointer 32-bit pada sistem 32-bit dan pointer 64-bit pada sistem 64-bit. Pehraps izx dapat berbicara dengan beberapa masalah ini.
Eliah Kagan
2
@EliahKagan: apakah menurut Anda Q ini bisa menjadi kandidat yang baik untuk kanonik Q: "Saya memiliki prosesor 64-bit tetapi kurang dari 4 GB ram. Kernel mana dari ketiganya yang harus saya pilih?"
ish
0

Saya memiliki masalah serius menggunakan 32-bit 12,04 dengan perangkat lunak tertentu (zfs filesystem), mengungkap keterbatasan vmalloc dari sistem 32-bit (saya telah mencoba kedua pae dan non-pae dan parem tuning vmalloc dan depmod, sampai mati ... tapi tidak ada keberhasilan). Mungkin ini adalah kasus khusus, tetapi dapat diberikan sebagai contoh. Batasan di suatu tempat jauh di dalam kernel 32-bit adalah 1GB, bahkan hingga 3,2 GB dapat digunakan.

Pergi untuk 64-bit jika Anda bisa. Saya cukup yakin bahwa Tou vcan ... Saya kira sampai saat ini, itu (= 64bit cpu core) harus didukung oleh hampir semua sistem yang berjalan. Nanti "upgrade" entah bagaimana tidak nyaman (itu berarti menginstal ulang sebenarnya, bahkan jika dpkg dan menyalin / etc / dan / home / dapat membantu menjalankan instalasi baru ..) tetapi masih harus dapat diterima. Saya pikir tidak ada masalah yang perlu ditakutkan dengan 64-bit, bahkan jika Anda terpaksa menggunakan aplikasi 32bit lama / tertutup atau beberapa perpustakaan untuk beberapa alasan.

coro
sumber