Apakah Ubuntu mendukung ukuran file swap dinamis?

13

Saya tidak bisa membayangkan mengapa file swap perlu ukuran tetap. Mengapa tidak membiarkannya mengubah ukuran secara dinamis, seperti file gambar hard drive untuk kotak virtual?

Tom Mercer
sumber
Linux tidak mendukung ukuran ruang swap dinamis kecuali Anda menghitung opsi untuk menambah dan menghapus seluruh ruang swap saat run time. (Windows juga tidak, bahkan yang terakhir.)
David Foerster
Apakah Mac mendukung pertukaran dinamis?
Tom Mercer
Saya tidak punya ide. Ini kernel yang sama sekali berbeda yang saya tidak pelajari. Kemungkinannya mirip dengan ruang swap di Linux. Pokoknya, bisakah Anda membuka pertanyaan baru Unix & Linux atau Ask Different jika Anda memiliki pertanyaan baru atau tindak lanjut tentang kernel Darwin OS X? Bagian komentar tidak cocok atau dimaksudkan untuk pertanyaan baru atau diskusi panjang. :-) Terima kasih.
David Foerster
@ DavidFoerster pada Windows Anda dapat mengatur ukuran minimum dan maksimum untuk setiap file halaman dan Windows akan menambah ukuran file halaman bila perlu. tomshardware.com/news/…
phuclv

Jawaban:

11

Itu tidak terlihat seperti Linux mendukung ukuran file swap dinamis (bagaimanapun, saya tidak bisa mendapatkannya untuk mendeteksi bahwa file swap telah berubah ukuran tanpa a swapoff/ swapon).

Agaknya lebih mudah untuk mengasumsikan bahwa file swap tidak mengubah ukuran file secara dinamis saat menulis kode untuk mendukungnya. Saya juga tidak melihat manfaatnya. Karena Anda dapat menggunakan banyak file swap, tidak ada yang mencegah Anda membuat lebih banyak file swap sesuai kebutuhan.

Juga perhatikan ayat ini dari para swaponmanualnya :

The  swap file implementation in the kernel expects to be able to write
to the file directly, without the assistance of the  filesystem.   This
is  a problem on preallocated files (e.g.  fallocate(1)) on filesystems
like XFS or ext4, and on copy-on-write filesystems like btrfs.

Saya pikir masalah yang sama akan berlaku untuk file swap yang berukuran dinamis.

muru
sumber
Sepertinya ini benar, dan swapspace bahkan tidak mengubah ukuran swap secara dinamis.
Tom Mercer
2

SwapSpace adalah utilitas yang akan memungkinkan Anda untuk membuat swap berukuran dinamis jika itu yang Anda cari. Saya percaya ini tersedia di Ubuntu.

pengguna231695
sumber
Meskipun memiliki rilis baru 2 tahun yang lalu , versi yang dipaket untuk Ubuntu semuanya tampak kuno. Seberapa baik kerjanya?
muru
Saya tidak dapat membayangkan bahwa metode yang digunakan untuk menulis file swap telah berubah tetapi saya tidak dapat mengatakan dengan pasti. Bekerja dengan baik pada debian.
user231695
Saya masih memilih jawaban Anda karena sama mudahnya untuk membuat ruang baru.
user231695
Saya akan mencoba ini, dan melaporkan kembali.
Tom Mercer
@ user231695 sementara mudah untuk membuat ruang swap baru, itu sangat merepotkan, dan mungkin benar-benar tidak bisa digunakan sebagai solusi. Satu-satunya saat pengguna ingin menambahkan ruang swap baru adalah saat ketika swap yang ada penuh. Oleh karena itu pertanyaan saya untuk ukuran dinamis file swap.
Tom Mercer
1

Saya tahu ini sudah terlambat, tapi saya pikir solusi terbaik untuk pertukaran dinamis adalah dengan:

sudo apt install dphys-swapfile
sudo update-rc.d dphys-swapfile enable

kemudian CONF_SWAPFACTOR=2masuk /etc/dphys-swapfiledan akhirnya

sudo service dphys-swapfile start
Denis Pitzalis
sumber
Tampaknya tidak mengubah ukuran swap secara dinamis. Sepertinya sebuah skrip untuk menginisialisasi swapfile dengan ukuran tertentu yang standarnya menjadi kapasitas 2x RAM.
Tom Mercer
Hai @TomMercer mengatur swapfactor dan maxswap, sesuai dengan komentar dalam file: "# atur ukuran ke nilai yang dihitung, kali ini ukuran RAM, secara dinamis beradaptasi, menjamin bahwa ada cukup swap tanpa membuang ruang disk yang berlebihan". "beradaptasi secara dinamis" tampaknya apa yang Anda cari. Terbaik
Denis Pitzalis
Apakah ini membuat swapfile saya bervariasi dalam ukuran antara, katakanlah, 1KB dan 16GB, sementara saya menggunakan OS dan mengisi RAM? Itulah yang dimaksud swap "mengubah ukuran secara dinamis". Membuat swapfile yang merupakan kelipatan dari ukuran RAM tidak dinamis. Tidak ada gunanya memiliki swapfile sama sekali sampai RAM penuh, dan kemudian Anda ingin swapfile menjadi persis ukuran VRAM yang Anda gunakan. Jika Anda menutup tab atau gambar besar yang sedang Anda kerjakan, swapfile harus secara dinamis mengubah ukurannya kembali. Swapfile harus selalu penuh 100% dengan mengubah ukurannya sendiri secara dinamis.
Tom Mercer
0

Swap space dapat ditambahkan ke sistem yang sedang berjalan dengan menggunakan swapon perintah. Itu membutuhkan swapfile / partisi yang ada (tidak digunakan). Untuk membuatnya, gunakan ddperintah untuk mengalokasikan file yang berdekatan, dan kemudian mkswapuntuk menambahkan informasi kontrol yang benar ke file / partisi.

Untuk menghapus file swap, gunakan swapoff ; file kemudian dapat dihapus.

Saya curiga itulah yang terjadi SwapSpace demon @ @ user231695.

Perhatikan bahwa swapoff dapat menjadi operasi lambat jika swapfile sedang digunakan; semua data harus ditransfer ke area swap lain.

CSM
sumber