Solusi 1:
Pada sistem besar, RAM fisik 8GB, kami biasanya mengalokasikan swap 2GB. Ini adalah server database yang dimuat yang menjalankan Oracle atau PostgreSQL. Selama bertahun-tahun, saya belum pernah melihat swap terkena bahkan di bawah beban berat. Beban berat kira-kira 100 hingga 150 pengguna melakukan sekitar 10.000 SQL membaca, dan mungkin 2.500 menulis per menit.
Kami juga menyesuaikan tingkat swapiness untuk mencegah pertukaran dan kami mematikan proses yang tidak dibutuhkan yang kami tahu tidak perlu dijalankan. (Linux khusus dibuat)
Seperti Eddie, katakan di atas, RAM fisik 1x adalah aturan praktis yang baik untuk apa pun di bawah 4GB. Saya membuat Linux khusus untuk perusahaan besar Fortune-500 dan ini adalah hal-hal yang biasanya kami lakukan, dan kami tidak mengalami masalah selama lebih dari 5 tahun terakhir saya berkonsultasi untuk mereka.
Pada sistem yang lebih besar:Linux 64bit dengan RAM 32GB dan 64GB, ini adalah server database Oracle kami, dan kami biasanya menyimpan 2GB swap untuk hal-hal seperti yang ditunjukkan Eddie di atas - proses menganggur akan dipindahkan ke swap tergantung pada pengaturan swapiness Anda.
Solusi 2:
Sebuah pertanyaan yang tampaknya tak lekang oleh waktu. Orang-orang baik di SlashDot membahas ini beberapa waktu lalu. Lihat apa yang mereka katakan:
- Ruang disk bukan masalah dengan HDD modern, 16 GB masih merupakan jumlah yang sepele untuk drive TB modern.
- Namun, ruang swap yang signifikan dapat menjadi masalah jika manajemen memori buruk:
Jika saya menonton film 4 GB selama 2 jam, banyak pengelola memori akan memutuskan bahwa mencoba menyimpan semua data itu mungkin merupakan hal yang baik. Di tengah film, ia akan berpikir bahwa semua program lain yang sedang berjalan tidak digunakan selama satu jam dan dapat ditukar dengan aman untuk menyimpan lebih banyak dari file 4 GB itu ke dalam cache. Hasil akhirnya adalah setengah dari program Anda ditukar setelah menonton film, mengakibatkan sistem lamban yang merusak seluruh file swap.
- Pada akhirnya, keputusan yang tepat harus berasal dari persyaratan memori, bukan rumus kasarnya:
Jika Anda memiliki [RAM yang cukup untuk menjalankan program yang ingin Anda gunakan setiap hari], maka tidak ada alasan untuk menggunakan swap.
Solusi 3:
Lihat jawabannya Berapa banyak ruang SWAP pada sistem memori tinggi? untuk beberapa panduan, meskipun pertanyaan Anda lebih umum. Pendapat sangat bervariasi tentang hal ini, tetapi umumnya orang dengan RAM 1 GiB atau lebih tampaknya berjalan tanpa swap sepenuhnya, atau dengan 1xmemory sebagai swap.
Bahkan jika Anda tidak berencana untuk menggunakan begitu banyak RAM sehingga Anda akan memaksa terjadinya pertukaran, ada beberapa nilai dalam memiliki setidaknya 1xmemory sebagai swap:Ini memungkinkan sistem operasi untuk menukar beberapa hal yang tidak diharapkan untuk digunakan segera sehingga dapat menggunakan memori tersebut untuk buffer disk atau IO, misalnya.
Solusi 4:
Jika Anda berharap sistem Anda dapat hibernasi dan kemudian melanjutkan dengan sukses :-) , mungkin lebih baik mengalokasikan lebih banyak ruang untuk partisi swap daripada jumlah RAM fisik
Solusi 5:
Penyedia VPS saya bahkan tidak menyediakan ruang swap untuk server, dan milik saya berjalan dengan baik tanpa itu.
Sebagian besar server yang saya lihat setiap hari di tempat kerja juga tanpa swap.
Edit
Namun - jika Anda menjalankan JVM, pastikan pastikan Anda memiliki setidaknya ruang swap sebanyak yang Anda pernah atur -Xmx
karena masalah umum dengan JVM.
Singkatnya, ketika JVM membutuhkan lebih banyak memori daripada yang digunakan saat ini (tetapi masih belum mencapai Xmx
), itu:
- menukar sendiri ke disk
- mengalokasikan memori baru
- membaca dirinya kembali ke dalam RAM
Artinya jika Anda menukar kurang dari Xmx
Anda , itu bisa gagal.
Mengutip laporan bug
Hal terbaik untuk dilakukan adalah meningkatkan ukuran swap pada mesin yang mengalami kesalahan ini.
Saya mencoba memainkannya dengan aman saat bekerja dengan JVM dan menyetel swap ke memori fisik yang sama.