Ringkasan bisnis plan
Area swap (disebut partisi swap, file swap, atau file halaman) hanyalah mekanisme untuk menambah memori fisik yang dapat ditangani oleh OS.
Jika Anda kekurangan RAM fisik yang tersedia, dan pada mesin saat ini, saya akan mengatakan jika Anda memiliki RAM 4 GB atau kurang. Maka Anda mungkin harus memiliki swap. Tetapi ini tergantung pada beban kerja Anda dan bagaimana Anda menggunakan mesin Anda.
Jika Anda memiliki lebih dari 4GB RAM, ada kemungkinan besar sistem Anda tidak akan pernah menggunakan swap. Jadi jika swap diaktifkan atau tidak, ini tidak akan banyak berubah.
Meskipun ini tergantung pada faktor-faktor lain, semakin lama mesin Anda berjalan, semakin besar kemungkinan OS akan menukar sebagian kecil RAM yang tidak digunakan ke swap walaupun ada banyak tempat yang tersisa. Namun, seringkali sistem menggunakan RAM "bebas" untuk buffer file dan hal-hal lain, dan beberapa beban kerja mungkin membuat buffer file Anda menggunakan semua RAM yang tersedia.
Informasi latar belakang
Apa yang akan terjadi jika Anda menonaktifkan swap dan memori Anda sepenuhnya digunakan? Nah, saat berikutnya aplikasi meminta lebih banyak memori (seperti dengan malloc atau realloc), itu akan menerima kesalahan! Jika dikodekan dengan benar, aplikasi akan mendeteksinya, tetapi menangani kesalahan seperti itu dan menghentikan program dengan anggun masih bisa menjadi tantangan! Namun, banyak pengembang tidak menguji alokasi memori yang berhasil dan seringkali aplikasi macet segera setelah memori yang tidak dialokasikan ini akan digunakan. Jadi ada peluang kuat bahwa aplikasi akan macet, dan sebenarnya banyak aplikasi akan macet karena Anda memiliki lebih dari satu aplikasi yang biasanya berjalan pada saat yang sama. Mudah-mudahan, kernel itu sendiri harus kebal, tetapi dalam pengalaman saya itu tidak selalu terjadi.
Jika Anda memiliki swap, Anda akan memiliki perilaku yang sama , tetapi Anda memiliki batas lebih tinggi sehingga kemungkinan Anda tidak akan mencapai batas itu.
Saya memiliki 2 mesin personnaly dengan RAM 8 dan 16 GB. Penggunaan pribadi saya atas mesin ini seharusnya tidak pernah membuat saya dekat untuk menggunakan semua RAM ini (hari ini! Mungkin dalam beberapa tahun yang bisa berbeda). Satu-satunya alasan saya akan mencapai batas RAM fisik adalah bahwa suatu proses menjadi nakal dan memakan semua RAM. Tidak memiliki swap adalah suatu kelegaan, kernel akan segera membunuh proses jahat segera setelah mencapai batas RAM. Jika Anda memiliki swap, Anda akan mendapatkan pengalaman yang menyakitkan (mungkin bukan pada SSD ...) karena sistem Anda akan menukar dan menukar dan menukar dan kadang-kadang menjadi benar-benar tidak responsif sampai semoga kernel Anda membunuh pelakunya!
Saran
Anda seharusnya tidak takut oleh orang-orang yang mengatakan sesuatu yang sangat buruk akan terjadi jika Anda menghapus swap. Jika Anda melakukannya, ruang alamat fisik Anda akan berkurang, seperti jika Anda akan beralih dari 4 GB RAM menjadi 2 GB. Apakah Anda akan melakukan hal seperti itu? Maka Anda tidak harus menghapus swap. Namun Anda dapat memutuskan untuk membatasinya, dan itu akan menjadi bijaksana .
Jika orang mengira beban kerjanya mungkin membuatnya menggunakan dekat atau lebih dari RAM fisik yang tersedia, atau jika seseorang membutuhkan banyak I / O (baca / tulis ke disk), maka swap harus disimpan.
Ketika swap harus disimpan, pengguna harus mencoba untuk menetapkan batas jumlah memori yang dapat digunakan oleh suatu proses. Pada sistem Linux, seseorang dapat menggunakan batas memori cgroup untuk menghindari bahwa beberapa proses menjadi tidak terkendali, saya tidak tahu yang setara pada OS X tetapi itu harus menjadi caranya.
Namun, jika seseorang memiliki lebih dari cukup memori yang tersedia untuk beban kerjanya, maka ia dapat dengan aman menonaktifkan swap atau ia dapat menyimpannya. Itu tidak akan banyak berubah bahkan dalam hal kinerja karena jika sistem tidak menggunakan swap, maka Anda tidak terkena penurunan kinerja (terutama terlihat pada hard disk rotasi lama, kurang begitu pada SSD).
Menggunakan trik yang sama seperti di atas untuk mencoba menetapkan batas memori per proses atau kelompok proses juga merupakan penerima dalam hal RAM yang tersedia lebih dari cukup.
Contoh saya sendiri
Saya memiliki PC lama dengan RAM 1 GB, di sana saya memiliki pertukaran besar: 4 GB sehingga saya dapat menjalankan Firefox dan aplikasi lain di dalamnya. Saya cenderung menggunakan aplikasi sesedikit mungkin (atau tab di Firefox) untuk memiliki pengalaman pengguna yang benar.
Saya memiliki server kecil dengan RAM 8 GB. Di sana saya tahu persis pekerjaan saya dan saya tidak ingin server saya melambat karena suatu proses menjadi tidak benar dan menghabiskan semua memori. Di sana saya tidak memiliki batasan swap dan memori cgroup yang membatasi, sehingga aplikasi atau layanan dapat macet tetapi tidak pada kernel. Btw, ini adalah mesin Linux.
Lalu, saya memiliki Mac dengan RAM 16 GB. Saya bukan pengguna satu-satunya, dan kami tidak keberatan menunggu saat berpindah pengguna. Di sana kita punya swap, sulit bagi saya untuk merencanakan beban kerja pengguna lain dari komputer ini. Bahkan jika saya akan menjadi satu-satunya yang akan saya gunakan swap. Saya sering menjalankan beberapa VM dan menggunakan aplikasi yang menghabiskan banyak memori, tetapi tidak semuanya bersamaan, jadi saya tidak keberatan OS bertukar dalam aplikasi yang tidak digunakan sehingga saya bisa mendapatkan disk I / O yang lebih cepat atau meluncurkan VM lain. Sampai sekarang, saya belum melihat mesin ini bertukar!