Linux: jangan membuat partisi swap?

9

Saya bertanya-tanya karena saya mendengar bahwa swap digunakan ketika Anda keluar atau RAM dan dan menukar terlalu banyak adalah buruk, karena saya memiliki banyak RAM (8GB) ....

bagaimana jika saya tidak membuat partisi swap?

Juga, apakah saya memerlukannya untuk hibernasi atau tidak harus?

Mihai Bratulescu
sumber
Anda harus membuat swap, saya pernah mencoba untuk tidak membuat swap, tidak dapat melanjutkan instalasi
Lynob
apa yang terjadi ketika Anda menginstal di dalam windows? Saya melakukan itu dan juga agak lambat untuk rig saya dibandingkan dengan windows, tetapi saya tidak membuat partisi
Mihai Bratulescu
Saya tidak pernah mencoba menginstal Linux di dalam windows, saya selalu membuat partisi terpisah
Lynob

Jawaban:

12

Sistem operasi modern membutuhkan ruang swap untuk membuat penggunaan RAM yang efisien. Bahkan jika sistem Anda memiliki banyak RAM, pemborosan RAM menghasilkan cache buffer yang lebih kecil, yang berarti peningkatan I / O disk. Jadi, tidak peduli berapa banyak RAM yang Anda miliki, Anda tetap ingin sistem menggunakannya secara efisien. Menggunakannya secara efisien berarti mengeluarkan banyak hal dari RAM yang sangat tidak mungkin diakses.

Ketika Anda memulai sistem tipikal, sejumlah besar layanan memulai. Program menjalankan kode inisialisasi dan memodifikasi pemetaan memori pribadi dalam proses. Sejumlah layanan ini akan tak pernah berlari lagi. Banyak dari mereka tidak akan berjalan selama berjam-jam. Tanpa swap, OS tidak memiliki pilihan selain menyimpan pemetaan memori pribadi yang dimodifikasi yang terkait dengan layanan-layanan tersebut dalam RAM selamanya. Itu RAM yang tidak pernah bisa digunakan sebagai cache disk.

Jadi Anda ingin bertukar apakah Anda membutuhkannya atau tidak.

David Schwartz
sumber
8
"Jadi, Anda ingin bertukar apakah Anda membutuhkannya atau tidak." - Sepertinya Anda membuat kasus bahwa dia perlu bertukar apakah dia menginginkannya atau tidak.
sawdust
2
Asumsikan saya memiliki banyak RAM dan mampu membuang 2GB. Mengapa saya perlu file swap?
Tarik
1
Dalam hal ini, Anda tidak perlu file swap. Tapi seperti yang saya katakan, Anda menginginkannya. Karena apakah Anda mampu atau tidak membuang-buang RAM, Anda seharusnya tidak ingin menggunakan RAM secara tidak efisien ketika Anda tidak harus melakukannya.
David Schwartz
Saya menjalankan server CLI tanpa swap dan berjalan dengan sempurna. Menjalankan server teamspeak3, apache2, node.js Saya tidak pernah melihat lebih dari 500M ram digunakan. Jadi tidak mengganggu saya untuk menggunakan RAM "tidak efisien" DISCLAIMER: Fungsi server web server ini khusus untuk pengembangan, jadi bebannya selalu rendah. Dan jika saya memiliki kebocoran memori selama pengembangan saya lebih suka pembunuh OOM membunuhnya begitu saya kehabisan ram daripada mendorong semua omong kosong itu ke disk.
Native Coder
11

Saya telah menjalankan sistem desktop tanpa swap apa pun selama beberapa tahun, dan itu berjalan dengan baik! Ada beberapa perilaku yang berbeda; beberapa di antaranya menguntungkan dan beberapa mungkin membahayakan Anda. Itu semua tergantung pada apa yang Anda lakukan.

Satu perbedaan utama adalah bagaimana sistem berperilaku ketika kehabisan memori:

Jika tidak ada partisi swap, pembunuh OOM langsung berjalan. Jika Anda memiliki program memori yang bocor, kemungkinan itu adalah program yang terbunuh. Itu terjadi dan Anda memulihkan sistem hampir secara instan.

Jika ada aku s partisi swap, kernel mendorong isi memori ke swap. Proses yang salah dapat terus mengalokasikan memori. Ini terus terjadi sampai swap habis, yang bisa sepuluh menit hingga satu jam jika Anda memiliki partisi swap besar. Saat melakukan ini, sistem Anda melambat hingga merangkak. Menjadi tidak mungkin untuk membuka terminal dan mematikan prosesnya. Saya biasanya mencabut kabel listrik saat ini terjadi.

Jadi, karena saya akan kehilangan data saya bagaimanapun ketika sistem OOM, saya lebih suka opsi sebelumnya untuk setidaknya memiliki kesempatan (tinggi) pemulihan.

Jeff Taylor
sumber
Ini juga pengalaman saya. Linux tidak menangani swap-meronta-ronta cukup baik untuk memungkinkan Anda untuk membunuh sendiri program yang menyinggung. Lebih dapat diandalkan untuk membiarkan pembunuh OOM melakukannya sendiri. Tentu saja ini adalah desain yang mengerikan - yang lebih baik adalah membekukan proses yang menyinggung daripada membunuhnya dan memberikan GUI yang bagus untuk memungkinkan Anda mencairkan atau membunuhnya, tapi ... Linux.
Timmmm
2
Akhirnya respons yang masuk akal dan cocok dengan pengalaman saya sendiri. Saya tidak dapat memahami alasan di balik "Anda harus memiliki partisi swap". Kecuali jika kita ingin hibernasi sistem.
Tarik
5

Swap diperlukan untuk hibernasi, jika tidak Anda bisa bertahan tanpa itu baik-baik saja.

psusi
sumber
Dengan demikian ukuran area swap harus sedikit di atas ukuran memori yang dipasang di sistem Anda.
mdpc
@ mdpc, belum tentu; hanya harus cukup besar untuk menampung ram yang digunakan yang tidak dapat dibuang (mis. data yang didukung oleh file pada disk).
psusi
dan bagaimana Anda memperkirakannya pada penciptaan? Tidakkah Anda menginginkan perencanaan dan persiapan yang tepat untuk kasus yang lebih buruk karena partisi biasanya sulit diubah setelah ditetapkan?
mdpc
2

Ini adalah kesalahpahaman umum untuk berpikir memiliki area swap berdampak negatif terhadap kinerja. Apa yang sangat memengaruhi kinerja adalah tidak memiliki cukup RAM. Area swap per se tidak memiliki efek negatif pada kinerja kecuali jika Anda tidak peduli dengan keandalan. Itu dapat memiliki positif berdampak pada kinerja bahkan saat Anda merasa memiliki cukup RAM (dan tidak ada kekurangan RAM yang dilaporkan).

Pada dasarnya ada tiga kasus untuk dipertimbangkan:

  • 1: Ada cukup RAM untuk kebutuhan kernel internal, untuk semua aplikasi Anda agar set halaman berfungsi pada RAM dan masih memiliki "bebas" RAM untuk cache buffer untuk menyimpan sebagian besar data sistem file panas.

  • 2: sama seperti di atas kecuali Anda tidak memiliki cukup RAM bebas untuk cache buffer menjadi sangat efisien.

  • 3: Tidak ada cukup RAM untuk bahkan menyimpan halaman yang digunakan aplikasi Anda.

Dalam kasus 1, yang seharusnya menjadi norma untuk mesin produksi, memiliki area swap atau tidak tidak mengubah apa pun (setidaknya pada OS berbasis Linux dan OS lain yang terlalu banyak melakukan memori).

Dalam kasus 2, memiliki area swap mungkin memperbaiki kinerja keseluruhan dengan memungkinkan sistem untuk keluar halaman sangat jarang digunakan dan kemudian memungkinkan buffer cache untuk memainkan perannya dengan lebih baik.

Dalam kasus 3, memiliki area swap memungkinkan aplikasi untuk terus berjalan dengan mengorbankan penurunan kinerja akibat pagination. Di sisi lain, kehilangan area swap (atau yang cukup besar) akan membuat aplikasi crash secara acak. Selain itu, tergantung pada pengaturan OS, pembunuh OOM mungkin juga memutuskan untuk mematikan sebagian besar aplikasi yang membutuhkan banyak memori jika ada permintaan RAM yang kuat tanpa memberi mereka kesempatan untuk menyimpan data penting (Anda).

Kasus terakhir ini adalah kasus yang harus Anda pilih. Tentu saja ada beberapa kasus penggunaan di mana proses terbunuh adalah pilihan yang lebih disukai seperti sistem di mana waktu respons sangat penting dan di mana kehilangan transaksi / proses bukanlah masalah besar.

Namun, saya cenderung percaya pada sebagian besar situasi, lebih baik untuk dapat memberi kesempatan bagi pengguna / administrator untuk melihat kekurangan RAM dan bertindak sesuai tanpa risiko kehilangan data.

jlliagre
sumber
0

Jika Anda tidak ingin menggunakan partisi swap, Anda dapat menggunakan file swap: gambar sistem file yang disimpan pada file biasa dan digunakan sebagai ruang swap Anda.

Artikel berikut menjelaskan cara melakukannya secara rinci:

Joseph R.
sumber
apa perbedaan antara file swap dan partisi swap? dan apa yang akan terjadi jika saya tidak memilikinya?
Mihai Bratulescu
kecepatan akses ....
mdpc
2
Jika digunakan YA itu cukup signifikan. Jika Anda menggunakan partisi, ini adalah pengalamatan sederhana, jika Anda menggunakan file, Anda harus melakukan semua overhead sistem file untuk menggunakan file swap dan Anda TIDAK BISA menjamin di mana pada disk segmen akan berada.
mdpc
2
@mdpc overhead sistem file dapat diabaikan mulai dari kernel 2.6. Metadata, cache, dan kode sistem file dilewati. Blok disk mentah hanya diakses secara langsung.
jlliagre
1
@ mdpc File swap seharusnya tidak terfragmentasi secara signifikan, kecuali jika Anda membuatnya akhir-akhir ini. Selain itu, akses swap jarang berurutan tetapi kebanyakan acak karena bagaimana paging permintaan bekerja sehingga fragmentasi seharusnya tidak menjadi masalah.
jlliagre
0

Ini agak berbahaya tetapi Anda BISA menjalankan tanpa ruang swap. Tetapi jika Anda akhirnya melebihi jumlah memori yang Anda miliki, sistem Anda akan segera crash tanpa pemberitahuan.

Apa swap memberi Anda pada dasarnya adalah perpanjangan tetapi jauh lebih lambat untuk memori Anda. Jika Anda melebihi Anda akan mulai bertukar, itu benar-benar akan mengambil kehidupan dari sistem Anda .... NAMUN dengan membunuh proses yang salah Anda masih dapat menyelamatkan sistem Anda.

Beberapa program bersikeras mengalokasikan (tetapi tidak menggunakan) ruang swap, beberapa di antaranya adalah program basis data jika saya ingat. Sekali lagi, dengan tidak memiliki ruang swap Anda dapat membatasi program yang mungkin dijalankan.

Akhirnya, lihat SWAP MURAH dalam kenyataan bahwa Anda tidak perlu membuat cadangan area. (Saya harap Anda adalah salah satu dari sysadmin luar biasa yang baik yang membuat cadangan sistem mereka).

Jadi buat itu.

Aturan praktis saya dulunya 2 * ukuran memori ..... tapi sekarang mengatakan saya ok dalam banyak kasus dengan 1 * ukuran memori tetapi umumnya menggunakan 1,5 * (ukuran memori). Anda tidak harus membuat jumlah yang besar ini, tapi saya akan ... terutama jika ada jenis pekerjaan produksi yang Anda lakukan.

Oh ya, dan untuk hibernasi, swap DIBUTUHKAN untuk menampung gambar memori total. Dan dengan demikian ukuran jika Anda mempertimbangkan h8ibernasi harus SETIDAKNYA (1 * ukuran memori) + 100MB .. 100 MB adalah untuk overhead yang mungkin diperlukan dalam proses.

mdpc
sumber
jadi ... untuk beberapa program Anda perlu swap area agar bisa dijalankan? Saya tidak khawatir kehabisan ram dengan 8GB (meskipun bukan tidak mungkin)
Mihai Bratulescu
Aturan ukuran memori 2x sudah tua dan ketinggalan zaman. Tetapi memiliki beberapa swap bukanlah ide yang buruk. Itu tidak menggunakan terlalu banyak ruang disk, jadi Anda tidak akan ketinggalan ruang yang digunakan; ini biasanya tidak digunakan jika Anda memiliki RAM yang cukup, dan memungkinkan Anda untuk membuang core ke swap Anda.
Hennes
@ Hennes - baca catatan saya ... "dulu"
mdpc