Bisakah Anda memiliki terlalu banyak swap?

16

Saya hanya ingin tahu apakah Anda dapat memiliki partisi swap yang terlalu besar. Jika ya, kapan partisi swap terlalu besar? Apa kerugian / efek buruk dari memiliki partisi swap yang terlalu besar (bahkan jika saya memiliki banyak ruang disk)?

Jika tidak, apa manfaat memiliki lebih dari ruang swap yang disarankan?

An0n
sumber
5
Kelemahan yang jelas adalah bahwa Anda membuang ruang disk. OTOH: jika Anda memiliki swap "terlalu banyak" (katakanlah 30GB pada sistem 4GB), maka kesalahan aplikasi akan mendapatkan memori yang jauh di kemudian hari dan itu akan memperlambat sistem Anda. Aplikasi berperilaku tertib (tanpa kebocoran memori) tidak akan menggunakannya. (Saya akui, ini adalah pandangan yang disederhanakan.)
PerlDuck
Saya setuju dengan @PerlDuck - "terlalu banyak swap" hanya menggunakan ruang disk. Sistem Anda akan lambat jika mulai menggunakan swap, dalam hal ini jalankan aplikasi yang lebih sedikit, aplikasi yang lebih ringan, atau dapatkan lebih banyak RAM
Panther
Saya tahu, jadi jika Anda memiliki RAM yang cukup, selain menggunakan terlalu banyak ruang disk, apakah ada kerugian? Kecuali aplikasi "keliru" di luar kantor seperti yang dikatakan PerlDuck.
An0n
1
VTD Semua pertanyaan dalam Edit membenarkan perubahan alasan dekat dari duplikat ke topik terlalu luas. OP jelas jengkel tetapi meta atau ruang obrolan adalah tempat yang lebih baik untuk diskusi.
WinEunuuchs2Unix
3
Jika orang tidak yakin dengan apa yang dibicarakan @PerlDuck (dan Panther), perhatikan bahwa meskipun Anda memiliki ruang disk yang tidak terbatas secara efektif, memiliki lebih banyak ruang untuk bertukar akan membuat proses yang seharusnya dihentikan, dan yang sebaliknya akan dengan cepat dihentikan secara otomatis, memperlambat sistem ke perayapan untuk waktu yang lama terlebih dahulu . Komentar PerlDuck, saya pikir, juga akan berfungsi sebagai jawaban. Jika kita akhirnya membuka kembali pertanyaan ini, mungkin sebuah jawaban dapat ditambahkan tentang kelemahan memiliki jauh lebih banyak pertukaran daripada yang diperlukan. Karena ada kekurangannya.
Eliah Kagan

Jawaban:

8

Tidak

Pada pandangan pertama Anda tidak dapat memiliki terlalu banyak swap karena Anda dapat melihat swap sebagai cara untuk meningkatkan RAM. Sebenarnya itu tidak bertambah RAM, itu hanya berpura-pura: Jika Anda memiliki 8 GB RAM nyata dan ruang swap, katakanlah, 24 GB dikonfigurasi, maka program Anda dapat mengalokasikan dan menggunakan hingga 8 + 24 = 32 GB memori yang terdengar bagus pada awalnya.

Tapi

Jika Anda menjalankan aplikasi yang memiliki kebocoran memori atau tidak benar-benar dibuat untuk berjalan dengan memori 8 GB (bayangkan mengedit video, misalnya), maka aplikasi ini akan mulai menggunakan ruang swap itu, dan swap lambat. Semakin banyak ruang swap yang aktif digunakan oleh aplikasi ini, semakin sistem sibuk dengan hanya memindahkan memori ke dan dari disk. Ini akan secara drastis memperlambat keseluruhan respons sistem dan mengarah pada pengalaman pengguna yang buruk.

Akhirnya - ketika ruang swap habis - beberapa aplikasi akan menghadapi situasi kehabisan memori dan terbunuh oleh OOM_Killer kernel .

Dari wiki :

Kasing OOM pada komputer modern terjadi ketika sistem operasi tidak dapat membuat memori virtual lagi, karena semua perangkat pendukung potensial telah terisi.

Kesimpulan

Oleh karena itu, satu kelemahan dari memiliki terlalu banyak ruang swap adalah: semakin banyak yang Anda miliki, semakin lama situasi OOM ini terjadi dan semakin lama Anda harus menderita dari sistem yang lamban dan tidak responsif.

Kelemahan lain yang jelas tentu saja adalah membuang ruang disk tetapi itu mungkin tidak begitu penting saat ini.

PerlDuck
sumber
+1 untuk pertimbangan tepi case. Secara pribadi, saya bukan penggemar swap karena hibernasi untuk beruang dan sistem saya terlalu sibuk untuk itu. ;-) Bersulang.
Penatua Geek
@ElderGeek LOL. Sebenarnya Eliah Kagan membuat saya mengubah komentar sederhana saya menjadi jawaban. Dia meyakinkan saya bahwa kerugian yang disebutkan di atas karena terlalu banyak bertukar adalah hal yang penting dan mungkin penting bagi orang lain. Saya bersama Anda dan memiliki sedikit swap yang dikonfigurasi (2GB dengan 8GB RAM) dan hampir tidak pernah tersentuh.
PerlDuck
Saya memiliki hasil yang serupa dengan pengaturan yang sama, saya berharap rumor 2x swap akhirnya akan mati.
Penatua Geek
5

Tidak ada kelemahan langsung ke ruang swap besar. Dengan cara itu dikelola oleh kernel peningkatan jumlah ruang swap di atas apa yang cukup tidak memiliki atau dampak yang dapat diabaikan pada kinerja.

Satu-satunya downside dari ruang swap "terlalu banyak" adalah bahwa Anda tidak dapat menggunakan ruang itu untuk penyimpanan.

David Foerster
sumber
1
@ An0n: Saya pikir ini akan menjadi kerugian yang cukup besar untuk mengalokasikan semua ~ 6 TB yang saat ini terhubung ke mesin saya sebagai ruang swap. Di mana saya akan meletakkan semua musik saya ...?
David Foerster
2
@ An0n: Apa gunanya komputer jika yang bisa dilakukan adalah boot dan kemudian tidak menyimpan data yang berguna? Itu terdengar lebih seperti pemanas ruang yang mahal.
David Foerster
1
@ An0n: Tentu, saya berasumsi banyak tetapi Anda tidak mengerti intinya. Saya pikir kita dapat sepakat bahwa agar berguna, komputer harus dapat mencapai status sistem yang dapat digunakan (termasuk dapat melakukan boot) dan memiliki akses ke penyimpanan yang dapat digunakan pengguna untuk data pribadinya. Itu mengharuskan itu tidak ditempati oleh ruang swap.
David Foerster
2
Tentu saja itu relatif. Sama seperti "terlalu banyak" adalah relatif. Jika saya memiliki sistem yang dapat di-boot dan saya mengalokasikan semua ruang kosong saya sebagai ruang swap, maka itu tidak lagi berguna bagi saya karena kurangnya ruang kosong hingga saya mengubah konfigurasi sistemnya dengan cara yang berakhir pada lebih banyak ruang kosong. Dalam hal itu ruang swap akan "terlalu banyak" selama waktu itu membuat sistem tidak berguna selama waktu itu. Bagaimanapun, saya di sini bukan untuk berdebat semantik kata-kata dengan Anda.
David Foerster
1
@ An0n Untuk menggarisbawahi poin di sini, swap space adalah ruang yang tidak dapat Anda gunakan untuk hal lain. Ruang penyimpanan disk memerlukan biaya. Jika ruang disk Anda terbatas (milik saya hanya 32GB), Anda ingin menyimpannya sebanyak mungkin untuk menginstal program dan menulis file dengan barang-barang Anda di dalamnya, seperti musik. Orang-orang pada umumnya mencoba untuk menjaga swap ke minimum untuk alasan itu, dan tidak ada alasan lain. Swap adalah sesuatu yang mungkin perlu sistem untuk tetap berjalan secara efisien, yang sebaliknya tidak ada nilainya bagi pengguna. Secara umum, kami ingin sistem kami hanya menggunakan sumber daya yang diperlukan, dan meninggalkan banyak hal untuk kami mainkan.
Zanna
4

Anda tidak akan merasakan kerugian lain selain ruang yang lebih sedikit pada disk Anda, saya pikir bahwa saat ini konsepsi 2x jumlah ram sudah ketinggalan zaman di sebagian besar sistem. Saya biasanya merekomendasikan untuk menggunakan ukuran ram yang sama untuk swap memori di laptop meskipun untuk memberi Anda kesempatan untuk hibernasi pc Anda tanpa kehilangan data apa pun karena sifat RAM yang mudah berubah.

Satu-satunya kasus di mana saya akan mempertimbangkan menggunakan lebih dari 1x ukuran RAM untuk partisi swap adalah ketika Anda berpikir Anda akan meningkatkan ukuran RAM Anda dalam waktu singkat. Atau jika Anda berencana untuk menggunakan sistem di mana Anda akan menyimpan dalam semacam cache jumlah memori yang digunakan oleh program yang tidak digunakan pada saat yang sama.

Semoga poin saya cukup jelas, dan saya ulangi saya tidak berpikir Anda akan mengalami masalah karena memiliki terlalu banyak memori swap.

Semoga harimu menyenangkan!

zurg
sumber
2
Saya tidak menggunakan swap sama sekali jika RAM> 2-4 Gb pada desktop pengguna tunggal.
Panther
1
@Panther Mengapa tidak? Dan ini bukan tentang bagaimana atau kapan Anda menggunakannya. Ini tentang ukuran dan penggunaan.
An0n
2
Sudahkah Anda mempertimbangkan dampak kebocoran memori?
Penatua Geek
@ElderGeek Hai, tidak, saya tidak mempertimbangkannya. Saya suka jawaban Anda, saya tidak tahu tentang masalah kebocoran memori!
zurg
2

Berapa banyak SWAP yang dibutuhkan hibernasi?

Ini kesalahpahaman bahwa Anda membutuhkan RAM x 2 untuk ukuran SWAP ketika Anda menggunakan hibernasi. Ukuran swap haruslah ukuran RAM yang digunakan bukan RAM yang Terpasang . Umumnya ukuran swap harus 2/5 dari RAM yang diinstal. Untuk mengetahui jumlah minimum RAM yang diperlukan untuk digunakan:

$ cat /sys/power/image_size
3153907712

Pada mesin RAM 8 GB ini dibutuhkan minimal 3 GB untuk hibernasi.

Anda dapat mengubah nilai image_sizeuntuk ukuran swap yang lebih kecil dengan risiko kegagalan. Anda dapat menyesuaikannya untuk ukuran swap yang lebih besar dan mungkin mempercepat kecepatan hibernasi.

Referensi: https://wiki.archlinux.org/index.php/Power_management/Suspend_and_hibernate


RAM 16 MB pada tahun 1995, aturan berbeda untuk RAM 16 GB pada tahun 2018

Pada hari-hari ketika Anda memiliki 16 MB Ram, x 2 untuk 32 MB swap pada 720 MB hard drive Anda masuk akal. Sedikit sejarah RAM dan HDD dalam artikel Washington Post 1995 ini .

23 tahun kemudian beberapa artikel teknis dari tahun 1995 itu (walaupun saya tidak menemukan satu pun) mungkin terbukti menyesatkan pengguna baru. Namun saya menemukan artikel 2007 yang merekomendasikan SWAP = RAM x 2 .

Kembali pada tahun 1995 32 MB Swap dari 760 MB HDD adalah 4% dari HDD. Memang partisi swap mungkin telah banyak digunakan pada tahun 1995. Hari ini pada tahun 2018, 16 GB RAM x 2 untuk 32 GB SWAP pada 256 GB SSD Anda tidak masuk akal karena mengambil 13% dari SSD. Hari ini partisi SWAP 8 GB saya tidak digunakan sama sekali kecuali saya memaksanya untuk mengisinya saat menguji OOM-Killer: Google Chrome akan mengambil memori saya ke titik di mana ia menyebabkan komputer saya membeku hampir berhenti. Apa yang bisa saya lakukan untuk mencegah hal ini? .

WinEunuuchs2Unix
sumber
+1 untuk menunjukkan kesalahpahaman tentang aturan 2x yang sering disebut-sebut sebagai total susun.
Penatua Geek
@ElderGeek Terima kasih. Saya menambahkan bagian riwayat ketika 16 MB RAM kali 2 untuk 32 MB SWAP mungkin masuk akal.
WinEunuuchs2Unix
Satu hal yang perlu dipertimbangkan adalah SSD versus HDD. Apakah kita ingin banyak membaca / menulis pada SSD yang membuatnya lebih cepat gagal di bagian SSD itu (atau ini hanya mitos)? Pada sistem saya 32GB ram saya menggunakan 2GB Drive velociraptor untuk SWAP tetapi tanpa niat untuk hibernasi, masih tidak yakin apakah ini ok, mungkin saya bisa memiliki swap tanpa ??? Tetapi jika saya berhibernasi mungkin 4GB akan cukup, tetapi kemungkinan saya akan menggunakan 20GB browser, dan kemudian 4GB tidak akan cukup ???
NZ Dev
@NZDev Saya memiliki swap pada SSD tetapi jarang digunakan. Terakhir kali saya memeriksanya masih 100% hidup setelah 1 tahun digunakan. Untuk melihat persentase sisa nyawa: askubuntu.com/questions/1038701/how-do-i-check-system-health/…
WinEunuuchs2Unix
1

Apa itu SWAP:

Swap space di Linux digunakan ketika jumlah memori fisik (RAM) penuh. Jika sistem membutuhkan lebih banyak sumber daya memori dan RAM penuh, halaman tidak aktif dalam memori dipindahkan ke ruang swap. Meskipun ruang swap dapat membantu mesin dengan jumlah RAM yang kecil, itu tidak boleh dianggap sebagai pengganti untuk lebih banyak RAM. Ruang swap terletak pada hard drive, yang memiliki waktu akses lebih lambat daripada memori fisik.

Swap space dapat berupa partisi swap khusus (disarankan), file swap, atau kombinasi partisi swap dan file swap.

Swap harus sama dengan 2x RAM fisik.


Keuntungan:

Memberikan ruang luapan saat memori Anda terisi penuh. Dapat memindahkan barang-barang yang jarang dibutuhkan dari memori berkecepatan tinggi Anda. Memungkinkan Anda melakukan hibernasi

Kekurangan:

Memakan ruang pada hard drive Anda karena partisi SWAP tidak mengubah ukuran secara dinamis Dapat meningkatkan keausan pada hard drive Anda Tidak serta merta meningkatkan kinerja (lihat di bawah)


Ketika Partisi SWAP "Jangan Membantu" seperti dalam "tidak layak dibandingkan dengan penyimpanan tambahan":

Jika HardDrive Anda hanya memiliki 5400 RPM dan Anda hanya memiliki sedikit RAM, katakanlah> 2GB. Mengapa Karena sistem secara konstan ingin mengakses partisi SWAP, pada akhirnya akan menjadi sangat lambat. Meskipun Anda sekarang memiliki ruang dalam memori, semua yang ada di partisi SWAP perlu dipindahkan kembali. Karena sistem akan berjalan lambat, alot tetap di partisi SWAP. Ini hanya dapat diperbaiki dengan reboot. Yang akan memakan waktu cukup lama karena sistem harus menghapus semuanya dari partisi SWAP sebelum dimatikan.


** Konklusi: **

Jika Anda ingin dapat hibernasi komputer Anda, maka Anda harus memiliki partisi SWAP. Ukuran partisi ini haruslah ukuran memori yang Anda instal, ditambah tambahan 10-25% untuk memberikan ruang bagi semua item yang sudah dipindahkan ke partisi SWAP.

Jika Anda hanya ingin peningkatan kinerja kecil (dan Anda memiliki setidaknya hard drive 7200rpm), maka Anda dapat menambahkan partisi SWAP jika Anda mau, tetapi itu tidak diperlukan kecuali Anda memiliki memori terpasang kurang dari 4GB. Ukuran ini bisa apa saja yang Anda inginkan. Namun saya merekomendasikan 2x RAM sebagai pinpoint. JIKA Anda memiliki ruang penyimpanan enoug.

Jika Anda memiliki hard drive 5400rpm, maka Anda tidak boleh membuat partisi SWAP hanya karena hambatan akan membuat komputer Anda lebih buruk. Namun, jika Anda benar-benar ingin memiliki SWAP, maka Anda masih dapat membuat partisi menggunakan pedoman ukuran yang sama seperti diuraikan di atas - tetapi ubah nilai swappiness ke sesuatu yang jauh lebih rendah.



Pendapat saya:

Namun bagaimanapun juga jika Anda menggunakan Ubuntu sebagai OS Utama Anda untuk penggunaan sehari-hari saya sarankan ukuran 2x RAM. Karena Anda tidak menginstal Ubuntu hanya karena Anda memiliki komputer lama. Tetapi karena Anda ingin menggunakan sistem sebagai OS Utama Anda.

Alih-alih membeli beberapa perangkat keras tambahan jika diperlukan alih-alih menyesuaikan partisi sistem agar tetap berjalan. Jika Anda membeli game, Anda juga memastikan sistem Anda "up to date" alih-alih menyesuaikan pengaturan untuk membuatnya "Playable".

Anda dapat memiliki ruang ekstra, SWAP, kecepatan, daya lebih baik daripada memiliki terlalu pendek atau perlu mengubah ukuran semuanya nanti. Karena Anda memerlukan SWAP atau ruang, membeli RAM? Atau perlu membeli ram cepat karena satu slot memori atau tongkat patah.

An0n
sumber
Re: Kesimpulan Anda Itu tidak masuk akal, atau cara lain untuk mengatakannya adalah di mana kita menarik garis. mis. RAM 8GB plus 16GB swap: Bagaimana jika saya menggunakan 8GB RAM dan 9GB swap, maka masih tidak cukup ruang untuk hibernasi. Jadi apa yang menyebabkannya? Dengan kata lain, berapapun ukuran yang Anda buat, Anda masih bisa menggunakannya semuanya dan lebih banyak lagi. Jadi mengapa file Swap tidak diberikan 2 ruang khusus 1 sebagai memori Virtual dan yang lainnya sebagai ruang hibernasi yang akan menjadi jumlah atau yang lainnya 2. Itu tidak menumpuk untuk saya dan tidak ada yang pernah menjawab pertanyaan ini.
NZ Dev
0

Memang ada overhead, tetapi sangat kecil; untuk setiap "halaman" pada disk ada penghitung referensi, dan ada beberapa struct yang terkait dengan setiap area swap; ini ada dalam memori kernel, jadi tidak bisa di-paging. Ini antara 2 dan 16 MB setiap 4 GB, tergantung pada arsitektur. Selebihnya cukup dinamis, sehingga bergantung pada penggunaan.

Jadi Anda dapat memiliki banyak, tetapi ingat ruang alamat paged itu sendiri memaksakan beberapa overhead pada RAM, dan di atas itu ada beberapa pelacakan yang terjadi untuk halaman yang ditukar, sehingga tidak berskala sangat jauh; bahkan jika memaksakan beberapa overhead, filesystem jauh lebih efisien daripada swap area ketika datang ke penanganan area yang lebih besar karena vfs dapat melepaskan informasi struktural ke disk (biasanya setidaknya halaman tabel tidak dapat ditukar, karena keterbatasan perangkat keras, dan vmm kemungkinan menggunakan memori yang tidak bisa ditukar untuk semua pembukuannya).

Saya tidak dapat memikirkan kelemahan lainnya, OTOH yang memiliki terlalu sedikit swap dapat menyebabkan fragmentasi ketika bertukar halaman, yang berarti lebih banyak mencari. Ketika memiliki banyak, setelah titik tertentu tidak akan ada perbaikan juga.

Swapping umumnya merupakan sumber daya terakhir (selain hibernasi), jadi Anda mungkin tidak akan mendapat manfaat dari memiliki lebih banyak ruang swap daripada RAM, khususnya jika Anda memiliki lebih dari 4GB RAM, dan kadang-kadang bahkan sebesar RAM terlalu banyak (pikirkan 64 GB) .

Ismael Luceno
sumber
Maaf, pernyataan / kalimat terakhir Anda membingungkan, atau tambahan yang bagus untuk yang di atas.
NZ Dev
@NZDev lebih baik sekarang?
Ismael Luceno