Apa tujuan dari beberapa file swap

29

Selama instalasi sebagian besar (jika tidak semua) distro linux, hard drive dipartisi untuk memasukkan partisi swap secara default.

Dimungkinkan untuk mengubah perilaku ini dengan swapon -p priority

Menurut halaman manual, prioritasnya adalah:

PRIORITY
Each swap area has a priority, either high or low. The default priority is 
low. Within the low-priority areas, newer areas are even lower priority 
than older areas.
All priorities set with swapflags are high-priority, higher than default. 
They may have any non-negative value chosen by the caller. Higher numbers 
mean higher priority.

Swap pages are allocated from areas in priority order, highest priority 
first. For areas with different priorities, a higher-priority area is 
exhausted before using a lower-priority area. If two or more areas have the 
same priority, and it is the highest priority available, pages are 
allocated on a round-robin basis between them.

As of Linux 1.3.6, the kernel usually follows these rules, but there are 
exceptions

Mengapa Anda membutuhkan lebih dari satu file swap?
Apakah praktik umum bagi administrator sistem untuk mengonfigurasi lebih dari satu swap?

spuder
sumber

Jawaban:

48

Ada begitu banyak alasan untuk memiliki banyak area swap (tidak harus berupa file), bahkan jika Anda hanya memiliki satu poros.

20-20 tinjau balik: Anda menggunakan mesin dengan area swap tunggal, kemudian akhirnya menyadari itu tidak cukup. Anda tidak dapat menggunakan kembali mesin sesuka hati, tetapi Anda dapat membuat area swap lain (mungkin file) hingga mengulang tata letak partisi menjadi opsi.

Mengubah ukuran atau memindahkan area swap: Anda tidak dapat mengubah ukuran area swap (seperti yang disebutkan oleh Evan Teitelman ). Dan Anda tidak bisa swapoff, membuat area swap baru dan kemudian swaponlagi kecuali Anda memiliki cukup RAM: swapoffingin memindahkan semua halaman yang diganti ke RAM sebelum melepaskan area swap. Jadi Anda membuat area swap sementara, swapoffyang asli, tunggu sampai semua halaman telah berpindah dari area swap yang lama ke yang sementara, ubah ukuran partisi swap aslinya mkswap, lalu swaponyang diubah ukurannya dan swapoffyang sementara. Halaman yang ditukar disalin dari area swap sementara ke yang diubah ukurannya, dan Anda selesai. Jika Anda memindahkan area swap, Anda bahkan tidak memerlukan area sementara. mkswapyang baru swapon, laluswapoff yang lama dan semuanya bergerak.

Swapping cepat gila: disk modern menggunakan perekaman bit zona . Zona pertama disk adalah yang tercepat. Anda mungkin ingin mengukur disk, dan membuat partisi yang menutupi zona drive tercepat pertama. Ini mungkin lebih kecil dari ukuran swap yang Anda maksudkan. Jadi, Anda menambahkan beberapa partisi pada beberapa disk, menggunakan teknik yang sama.

Swapping cepat gila, sekuelnya: sebagai alternatif, setelah Anda tahu di mana zona tercepat disk Anda, Anda dapat membuat area swap prioritas tinggi di zona pertama, area swap prioritas lebih rendah di zona kedua, dll. Dengan cara ini sistem swapping Anda secara otomatis tahu untuk memuat keseimbangan di semua zona disk cepat, pilih zona yang lebih cepat, dan gunakan zona yang lebih lambat sebagai area meluap saat dibutuhkan.

Penyeimbangan beban simetris: pada sistem yang dibangun dengan baik dengan banyak spindel (seperti server), saya ingin memiliki beberapa partisi swap yang menempati awal setiap disk (untuk memanfaatkan perekaman bit zona ). Mereka semua memiliki prioritas yang identik, sehingga kernel akan memuat-menyeimbangkan swap. Satu spindle mungkin memberi Anda 100 MB / s, tetapi menukar semua spindle bisa memberi Anda kelipatan. (Berbicara naif)

Penyeimbangan beban sadar- bottleneck : dalam praktiknya, ada beberapa hambatan lainnya yang terjadi. Jadi, misalnya, server 16 disk mungkin memiliki empat port SATA 6 Gbps, masing-masing dengan pengali empat port dan empat disk berbagi bandwidth. Jika Anda mengetahui hal ini, Anda dapat mengatur ruang swap Anda sehingga Disk 1 pada Port 1-4 memiliki prioritas tertinggi, disk kedua pada port 1-4 memiliki prioritas tertinggi kedua, dll. Ini akan memuat pertukaran swap tetapi tidak membebani pengganda port.

Bertukar perangkat dengan kinerja berbeda: (seperti yang disebutkan oleh Luke) jika sistem Anda bukan server baru, dan itu tumbuh secara organik selama bertahun-tahun, mungkin perangkat itu memblokir perangkat yang secara signifikan lebih cepat daripada yang lain. Anda ingin bertukar ke perangkat tercepat terlebih dahulu, lalu ke tercepat berikutnya, dll.

Pertimbangan ukuran: ( seizin David Kohen ) mungkin menempatkan semua swap Anda di satu drive membuat beberapa pertunjukan bebas di drive (ini terdengar seperti skenario tahun 2001, tetapi ada banyak perangkat lama atau tertanam di mana ini bisa menjadi masalah). Membaginya di semua drive, dan di atas semua manfaat lainnya di atas, Anda mendapatkan penggunaan ruang disk yang lebih baik per drive. Satu hal kehilangan beberapa pertunjukan per spindle, dan satu lagi kehilangan 300 pertunjukan dari satu disk.

Keadaan darurat: Anda memiliki waktu 96 jam untuk mengirimkan tesis PhD, dan percobaan terakhir Anda (eksperimen yang cenderung memberi Anda hadiah Nobel serta huruf campuran yang funky setelah nama Anda) menyedot memori pada tingkat yang mengesankan. Anda hampir kehabisan swap. Anda membuat file swap dengan prioritas kurang dari prioritas perangkat swap utama Anda - kernel akan menggunakannya sebagai ruang swap overflow. Anda bahkan dapat menginstal swapd untuk melakukan ini untuk Anda secara otomatis, sehingga Anda juga akan memiliki banyak ruang swap untuk emacsmenjalankan besar dan LaTeX.

Bertukar di berbagai media: Linux tidak dapat bertukar ke perangkat karakter, tetapi ada banyak media, fisik dan virtual yang berbeda: SSD (catatan: Anda mungkin tidak ingin bertukar di SSD), puluhan jenis pemintalan keras yang sangat berbeda disk, disket (ya, Anda dapat bertukar di disket - Anda selalu dapat menembak diri sendiri dengan Unix), volume DRBD , iSCSI, volume LVM, partisi terenkripsi LUKS, dll (termasuk kombinasi berlapis surealis, membingungkan - swap pada LUKS pada LVM pada port paralel drive ZIP melalui iSCSI melalui IEEE802.3ad Ethernet agregat? Tidak masalah, Anda cabul kotor). Ini adalah skenario ceruk, dan dimaksudkan untuk mendukung persyaratan ceruk.

Alexios
sumber
Terima kasih, saya tidak terbiasa dengan rekaman bit Zone. Saya ingin tahu saya akan memindahkan partisi swap saya ke pengemis piring, jadi saya telah membuka pertanyaan baru di superuser.com
spuder
1
Saya akan menambahkan alasan historis bahwa di masa lalu, menggunakan satu disk sebagai perangkat swap kadang tidak efektif karena menggunakan terlalu banyak ruang dan membuat sisa disk tidak berguna atau kurang berguna, dan membagi ruang swap di beberapa perangkat memberikan kompromi antara ruang swap besar dan jumlah ruang berdekatan yang tersedia pada disk.
Didi Kohen
Itu masih terjadi. Juga, Anda mungkin ingin swap Anda menempati zona tercepat disk, dan hanya itu. Yang hanya memberi Anda begitu banyak ruang untuk bermain per spindle. Meskipun itu tidak terjadi secara historis, karena HDD yang dikategorikan adalah hal yang 'baru'. (Versi 'historis' saya adalah ketika memori diukur dengan kata-kata)
Alexios
+1 untuk "Anda selalu dapat menembak diri sendiri dengan Unix" :-)
DUzun
3

Beberapa drive disk kecepatan. Anda dapat mengatur yang lebih cepat untuk digunakan pertama diikuti oleh yang lebih lambat jika yang gagal.

Luke
sumber
3

Anda tidak dapat memperluas swapfile (setidaknya, sejauh yang saya tahu) atau menukar partisi saat sedang digunakan. Jika Anda hampir memenuhi area swap yang tersedia, Anda mungkin harus membuat file swap tambahan.

Juga, jika suatu sistem membutuhkan ruang swap 4GB dan memiliki dua unit penyimpanan 2GB, ia harus menggunakan setidaknya dua area swap.


sumber