Mengapa Linux menggunakan partisi swap daripada file?


32

Menurut saya file swap lebih fleksibel.


1
Anda dapat menggunakan file swap di Linux. Saya melakukannya sekarang di beberapa mesin. Saya tidak menggunakan sesuatu yang istimewa, hanya ext4 atau ext4 di LVM. Tidak ada enkripsi atau apapun yang rumit. Tangguhkan dan hibernasi telah bekerja sangat baik untuk saya, bahkan pada mesin NVMe saya.
Cory T

Jawaban:


32

File swap lebih fleksibel tetapi juga lebih salah dari partisi swap. Kesalahan sistem file dapat merusak file swap. File swap dapat menjadi masalah bagi administrator, karena file tidak dapat dipindahkan atau dihapus. File swap tidak dapat digunakan untuk hibernasi. File swap sedikit lebih lambat di masa lalu, meskipun perbedaannya dapat diabaikan saat ini.

Keuntungan dari file swap adalah tidak harus menentukan ukuran terlebih dahulu. Namun, di Linux, Anda masih tidak dapat mengubah ukuran file swap online: Anda harus membatalkan registrasi, mengubah ukuran, kemudian mendaftar ulang (atau membuat file yang berbeda dan menghapus yang lama). Jadi tidak ada banyak manfaat untuk file swap di Linux, dibandingkan dengan partisi swap. Ini terutama berguna ketika Anda sementara membutuhkan lebih banyak memori virtual, bukan sebagai perlengkapan permanen.


4
di masa lalu ada juga manfaat kinerja. Tapi saya pikir itu berakhir ketika 2,6 keluar.
xenoterracide

Sepertinya ini tidak benar-benar menjawab pertanyaan. Atau apakah saya melewatkan sesuatu? Jawabannya hanya berbicara tentang swap file, dan tidak menyebutkan partisi sama sekali. @Gilles memang disengaja, atau apakah Anda hanya membuat kesalahan ketik?
gabe.

1
@ gabe: Saya sedang mendiskusikan swap file dibandingkan dengan partisi. Semoga ini lebih jelas sekarang.
Gilles 'SO- stop being evil'

1
Saya tunjukkan di sini komentar saya dalam jawaban Penz. Perasaan kehilangan kinerja yang diinduksi fs pada file swap diperdebatkan.
ata

2
Menurut Bantuan Komunitas Ubuntu Wiki help.ubuntu.com/community/SwapFaq Partisi swap diperlukan untuk hibernasi. Kutipan: "Itu tidak dapat menggunakan file swap pada sistem file yang aktif." Dan mengenai kinerja, tampaknya tidak ada perbedaan kecuali file jarang. serverfault.com/questions/25653/…
Erik Sjölund

28

Partisi swap dapat dipilih karena ia menghindari ketergantungan pada sistem file ketika semua yang Anda butuhkan adalah kumpulan memori yang dapat dialamatkan.

Tetapi tidak ada yang mencegah Anda menggunakan file swap daripada partisi swap, atau selain partisi swap.

  • Buat file:

    dd if=/dev/zero of=/extraswap bs=1M count=512
    
  • Inisialisasi isi file:

    mkswap /extraswap
    
  • Gunakan:

    swapon /extraswap
    
  • Lihat apakah itu berfungsi:

    free -m
    

Untuk mulai menggunakan swapfile selalu saat boot, edit / etc / fstab dan tambahkan

/extraswap           swap          swap    defaults    0 0

[1] http://www.redhat.com/docs/manuals/linux/RHL-8.0-Manual/custom-guide/s1-swap-adding.html


5
Alias ​​berguna Saya telah menggunakan selamanya untuk membiarkan saya mengetik moreswapterminal jika saya tiba-tiba membutuhkan ruang swap tambahan:alias moreswap='swapfile=`mktemp /tmp/swapXXXX` && sudo touch $swapfile && sudo dd bs=512 count=1M if=/dev/zero | tee $swapfile | pv -s 512M && sudo mkswap $swapfile && sudo swapon $swapfile'
Michael Mrozek

ini adalah informasi yang baik, tetapi tidak menjawab pertanyaan.
lesmana

6
Juga, bit pada overhead sistem file salah. Bertentangan dengan kepercayaan umum, tidak ada overhead dalam menggunakan swapfile. Andrew Morton memberikan penjelasan sederhana di sini . Itulah salah satu alasan menggunakan manajer swap berbasis swap file dinamis seperti daemon swapspace adalah solusi yang baik jika dikonfigurasi dengan baik.
ata

Mari kita tambahkan bahwa pendekatan swap file dapat menjadi satu-satunya pilihan Anda ketika Anda berjalan di cloud.
Sorin

1

Mungkin alasan utamanya adalah bahwa kernel suspend-to-disk utama tidak berfungsi dengan swap file. Misalnya instruksi wiki Debian adalah untuk menginstal uswsuspjika Anda memerlukan ini.

Baru-baru ini, swap file tidak berfungsi jika filesystem-nya btrfs, sehingga paling sederhana untuk distribusi untuk selalu membuat swap sebagai partisi.

Samar-samar disebutkan bahwa menggunakan file untuk swap berpotensi memiliki kinerja yang lebih rendah daripada partisi, sebelum kernel versi 2.6. https://www.kernel.org/doc/gorman/html/understand/understand014.html#text15


1

Untuk kelengkapan saya akan menambahkan jawaban saya sendiri:

Seperti yang dikatakan oleh @Gilles, file swap tidak dapat digunakan untuk hibernasi. Saat menggunakan file swap, sistem harus menemukan header file swap, tetapi untuk melakukan hal ini, sistem file yang berisi file swap harus dipasang, dan sistem file jurnal - mis. Ext3, ext4, dan pada dasarnya semua filesystem modern yang digunakan oleh Linux - tidak dapat dipasang selama resume dari disk. (Pada kenyataannya, ada cara untuk melakukannya, tetapi cukup rumit.)

Sumber: https://www.kernel.org/doc/Documentation/power/swsusp-and-swap-files.txt


0

Saya pikir itu terutama karena waktu akses ke data yang terletak di partisi lebih rendah. Maksud dari file swap lebih untuk membantu sys admin ketika dia benar-benar kehabisan RAM dan perlu mengoperasikan operasi besar yang mungkin akan merusak sistemnya. Dalam hal ini ia akan secara sporadis membuat file swap saat diperlukan.

Tetapi bagaimanapun Anda dapat memiliki keduanya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.