Apa sistem file swap di Linux

14

Di Linux Anda dapat memilih hal-hal seperti ext3 dan reiserfs untuk partisi. Untuk partisi swap, Anda cukup memilih "swap." Sebenarnya sistem file apa ini? Bisakah Anda membuat partisi ext3 dan menjadikannya partisi swap? Bagaimana itu berbeda?

tony_sid
sumber
Swap filesystem di Linux tampaknya disebut Linux Swap filesystem. Jika saya berhasil menemukan beberapa informasi nyata tentang itu, saya akan memposting jawaban. Sejauh ini, saya telah membaca dari en.wikipedia.org/wiki/Paging kernel yang mem -bypass sistem file pada file swap. Hal yang sama mungkin berlaku dengan partisi swap.
AndrejaKo
1
Orang-orang luar biasa di forum Gentoo memberi saya tautan ini ! Semuanya sepertinya dijelaskan dengan baik. Oh, terima kasih John R. Graham.
AndrejaKo

Jawaban:

26

Swap bukan sistem file yang sebenarnya. Itu hanya bagian cadangan dari disk yang merupakan memori yang dapat dialamatkan mentah tanpa struktur khusus.

mkswap membuat header untuk area swap dengan beberapa informasi tambahan. Dari swapheader.h dari paket util-linux-ng:

struct swap_header_v1 {
    char         bootbits[1024];    /* Space for disklabel etc. */
    unsigned int version;
    unsigned int last_page;
    unsigned int nr_badpages;
    unsigned int padding[125];
    unsigned int badpages[1];
};

Header versi 1 adalah yang saat ini digunakan. Itulah semua keajaiban di balik struktur baku swap.

matthias krull
sumber
Tidak harus ada semacam sistem file untuk membaca dan menulis sesuatu yang berarti bagi partisi?
tony_sid
5
Tidak. Anda hanya perlu mengatasi potongan memori. Itulah tepatnya halaman itu. Itu karena Anda tidak menyimpan data dengan struktur yang kompleks atau informasi tambahan seperti dalam sistem file nyata di mana izin dan tanggal disimpan bersama dengan data.
matthias krull
6
Anda masih dapat mengatasi blok jika Anda tidak memiliki sistem file.
matthias krull
8

Saya pikir partisi swap tidak memerlukan sistem file karena tidak ada file dan direktori di dalamnya. Partisi swap adalah tempat RAM virtual.

Matteo De Felice
sumber
2
itu bukan tempat ram virtual sebenarnya. itu (seperti ram) memori yang dapat dipetakan ke memori virtual suatu proses.
matthias krull
4

Linux memiliki dua bentuk ruang swap: partisi swap dan file swap. Partisi swap adalah bagian independen dari hard disk yang digunakan hanya untuk bertukar; tidak ada file lain yang bisa berada di sana. File swap adalah file khusus di sistem file yang berada di antara file sistem dan data Anda.

Bertukar diperlukan karena dua alasan penting. Pertama, ketika sistem membutuhkan lebih banyak memori daripada yang tersedia secara fisik, kernel menukar halaman yang kurang digunakan dan memberikan memori ke aplikasi saat ini (proses) yang membutuhkan memori segera. Kedua, sejumlah besar halaman yang digunakan oleh aplikasi selama fase startup-nya hanya dapat digunakan untuk inisialisasi dan kemudian tidak pernah digunakan lagi. Sistem dapat menukar halaman-halaman itu dan membebaskan memori untuk aplikasi lain atau bahkan untuk cache disk.

Am1rr3zA
sumber
2
Jawabannya sangat bagus dan menjelaskan inti masalahnya, tetapi itu adalah jawaban untuk pertanyaan "Apa itu swap pada GNU / Linux?" Jadi, apa yang dilakukannya di sini? Juga, tautkan linux.com/news/software/applications/…
AndrejaKo
Saya tahu apa itu swap.
tony_sid
... tidak tahu tentang opsi swap-file
MrCalvin
-1

Ada dua cara Anda dapat membuat ruang swap: swap sistem file dan pertukaran perangkat (atau mentah). Dengan swap sistem file, Anda membuat file pada sistem file dan menggunakannya sebagai ruang swap (seperti yang Anda lihat di windows dengan pagefile.sys). Dengan swap perangkat, Anda bertukar ke partisi yang Anda buat khusus untuk swap.

Mana yang lebih baik:

Debat ini dulunya jauh lebih menarik di masa "lama" karena:

Mengapa swap perangkat "lebih baik": Karena Anda bertukar ke partisi mentah, itu lebih cepat karena Anda tidak harus berurusan dengan semua overhead tambahan dari sistem file dengan inode dan overhead sistem file lainnya

Namun hari ini argumen ini tidak benar-benar berlaku. Dengan evolusi seberapa cepat akses disk saat ini, swap perangkat tidak memberi Anda lebih banyak waktu daripada swap filesystem.

Mengapa swap filesystem "lebih baik": Jauh lebih mudah untuk mengubah ukuran. Ketika Anda mengubah ukuran partisi itu jauh lebih sulit daripada hanya membuat file baru.

Namun hari ini dengan banyak orang menggunakan LVM daripada partisi mentah, mudah untuk mengecilkan dan mengembangkan ruang swap Anda

HARI INI bahkan lebih diperdebatkan: Sebagian besar server saat ini karena alasan kinerja sepadan dengan biaya hanya untuk menancapkannya penuh dengan memori. (Debat ini dulunya jauh lebih populer ketika RAM lebih sulit didapat dan itu umum untuk hanya menempatkan 4GB hingga 8GB RAM di server)

MENGAPA SAYA MENGGUNAKAN FILESYSTEM SWAP (dan bertukar secara umum)

Hari ini saya menginstruksikan orang-orang kami untuk menginstal dengan ong swap 4gig dan kami menggunakan konfigurasi / gambar yang sama untuk semua instalasi linux kami. Instalasi Oracle memerlukan penggunaan swap yang lebih tinggi sehingga untuk sistem yang akan memiliki Oracle I kemudian akan membuat sisanya dengan swap filesystem. Mungkin saja aplikasi Anda memiliki persyaratan swap untuk kemudian Anda dapat menambahkannya dengan swap sistem file.

Apakah ini membantu?

Saya memiliki instruksi terperinci bagaimana melakukan ini di linux di sini: http://geekswing.com/geek/how-to-add-filesystem-swap-on-linux-and-unix-systems/

ben
sumber
1
“Namun hari ini argumen ini tidak benar-benar berlaku. Dengan evolusi seberapa cepat akses disk saat ini, pertukaran perangkat tidak memberi Anda lebih banyak waktu daripada pertukaran sistem file. ”- ini bukan alasannya. Idenya di sini adalah bahwa ruang swap mungkin dalam permintaan segera . Melewati sistem file melibatkan direktori, blok, inode, cache buffer, dll. Yang merupakan codepath yang dapat membutuhkan lebih banyak memori, yang mengarah ke loop. Itu sebabnya swap paling baik dilakukan pada perangkat raw block. Itu juga menghindari fragmentasi swapfile.
mirabilos