Apakah swap merupakan anakronisme?

43

Saya telah menggunakan unix selama beberapa waktu, dan selama beberapa tahun terakhir saya merasa pertukaran adalah sebuah anakronisme, tetapi saya ingin tahu apa yang dipikirkan orang lain.

Argumen saya kira-kira begini (dengan asumsi tidak ada global ulimit atau memutar-mutar pengaturan OOM):

There is little value in swap because if you need to swap out to disk, 
odds are it's going to be a vicious cycle where an app will continue 
to eat not only real memory, but swap as well until it gets OOM 
reaped (_if_ it gets OOM reaped). 

If you have swap enabled, it will only prolong this death march to 
the detriment of other processes - and in the worst case where the
process is not OOM reaped in a timely manner, grind the system to
a halt.

Without swap, it will probably get OOM reaped sooner (if at all)

Untuk layanan apa pun yang disetel untuk kinerja, saya akan berpikir bahwa memahami batas atas penggunaan sumber daya itu akan menjadi kunci untuk menyetelnya terlebih dahulu, dalam hal ini Anda tahu berapa banyak yang Anda butuhkan.

Saya tidak bisa membayangkan banyak situasi (beberapa, tetapi tidak banyak) di mana Anda akan menunda proses yang sedang berjalan dan itu bisa bertukar keluar untuk memberikan ruang bagi hal-hal lain, tetapi Anda masih akan kehilangan soket Anda jika Anda melakukannya, sehingga memaksa core-dump via gcc atau menyalin memori dengan tangan akan setara secara fungsional.

Saya pasti tidak ingin swap pada sistem yang disematkan (walaupun mungkin memiliki ram yang tersedia lebih kecil), jika Anda kehabisan ram saya lebih suka proses saya mati daripada merobek memori flash sejuta-tulis-per-sektor berkendara selama akhir pekan dengan mengenakan-meratakan sektor ke inti.

Adakah unix-beard di luar sana yang memiliki alasan kuat untuk terus bertukar?

Jawaban && analisis UPDATE:

  • DIKONFIRMASI? - fork () membutuhkan jumlah memori yang sama untuk proses anak seperti induknya

    Garpu modern () adalah copy-on-write untuk anak-anak di POSIX (secara umum), tetapi Linux dan FreeBSD khusus, dan saya mengasumsikan OSX dengan ekstrapolasi. Saya menganggap ini bagian dari bagasi anakronistis yang ditukar dengan barang bawaan itu.

    Anehnya, artikel Solaris ini mengklaim bahwa meskipun Solaris menggunakan Copy-on-Write dengan fork (), Anda harus memiliki setidaknya 2x (!) Ukuran proses induk dalam memori virtual gratis untuk fork () untuk tidak keluar di tengah. Sementara elemen Solaris agak membantah argumen bahwa swap adalah sebuah anakronisme - saya pikir cukup sistem operasi yang menerapkan KK sedemikian rupa sehingga lebih penting untuk menghilangkan mitos daripada menandainya sebagai pembenaran lebih lanjut untuk swap. Sejak. Mari kita hadapi itu. Pada titik ini orang-orang yang benar-benar menggunakan Solaris mungkin hanya Oracle. Jangan tersinggung Solaris!

  • DIKONFIRMASI - file tmpfs / ramfs dapat digunakan untuk bertukar sebagai kenyamanan ketika tmpfs / ramfs terisi

    Jangan gunakan tmpfs / ramf tanpa batas! Selalu secara eksplisit menentukan jumlah ram yang ingin Anda gunakan tmpfs / ramfs.

  • DAPAT DIAJUKAN - Miliki sedikit pertukaran 'berjaga-jaga'

    Salah satu bos lama saya dulu sering berkata, 'Anda tidak tahu apa yang tidak Anda ketahui' - pada dasarnya, Anda tidak dapat membuat keputusan berdasarkan informasi yang belum Anda miliki. Namun, ini adalah argumen yang masuk akal untuk bertukar dengan saya - saya menduga jenis hal yang akan Anda lakukan untuk mendeteksi apakah aplikasi Anda bertukar atau tidak akan lebih berat daripada memeriksa untuk melihat apakah malloc () berhasil atau menangkap pengecualian dari gagal baru ().

    Ini mungkin berguna dalam kasus di mana Anda menjalankan desktop dan memiliki banyak hal acak yang terjadi, tetapi bahkan masih - jika sesuatu menjadi gila saya lebih suka itu OOM menuai daripada menyelam ke swap-neraka. Itu hanya aku.

  • PECAH! - Pada Solaris , Swap adalah penting untuk beberapa alasan

    tmpfs - menyatakan Jumlah ruang kosong yang tersedia untuk tmpfs tergantung pada jumlah ruang swap yang tidak terisi dalam sistem. Ukuran sistem file tmpfs tumbuh untuk mengakomodasi file yang ditulis padanya, tetapi ada beberapa tradeoff yang melekat untuk pengguna berat tmpfs. Tmpfs berbagi sumber daya dengan segmen data dan tumpukan dari program yang dieksekusi. Eksekusi program yang sangat besar dapat terpengaruh jika sistem file tmpfs mendekati ukuran maksimum yang diizinkan. Tmpfs bebas untuk mengalokasikan semua kecuali 4MB ruang swap sistem.

    Fakta dan mitos Solaris tentang swap - state Memori virtual saat ini terdiri dari jumlah total RAM fisik dan ruang swap pada disk. Solaris TIDAK memerlukan ruang swap untuk dikonfigurasi sama sekali. Jika Anda memilih opsi ini, setelah RAM penuh, Anda tidak akan dapat memulai proses baru. .

    Saya tidak yakin apakah ini berarti bahwa peta virtual maksimum yang dapat Anda buat adalah ram + swap , atau jika Anda masih bisa melakukan sesuatu seperti mmap () file yang lebih besar dari ram dan bergantung pada inisialisasi malas mmap () .. Sementara Anda mungkin dapat menjalankan Solaris hari ini dengan baik tanpa swap, sepertinya itu kurang ramah tentang hal itu daripada sistem operasi POSIXy lainnya.

  • PECAH! Alat hibernasi Linux populer tampaknya mengandalkan swap

    Secara default, TuxOnIce sepertinya mengandalkan swap untuk hibernasi - meskipun ada backend lainnya. Namun, jika Anda tidak menjalankan kotak yang perlu hibernate, saya akan tetap mendukung pernyataan bahwa 'swap anacronistic on linux'

synthesizerpatel
sumber
Saya tidak punya banyak jenggot un * x (masih sedikit rambut;), tetapi 2 sen saya adalah bahwa memiliki "sedikit" swap akan memberikan ketahanan pada sistem Anda. Sebagai ganti OOM langsung, Anda akan menukar bukan jika sedikit melebihi batas sistem Anda. Tentu, jika benar-benar melampaui batas sistem Anda, sistem Anda pada akhirnya akan crash / berhenti / nuke-sendiri / apa pun yang bisa Anda bayangkan. Jadi berikan sedikit tali untuk bermain;)
Ouki
1
Hal tentang fork () sebenarnya benar jika Anda mengatur sistem Anda untuk tidak pernah overcommit RAM (ini bukan default). Sekarang mengapa Anda perlu pengaturan itu lagi saya tidak tahu. Ini tidak berguna untuk pemrosesan waktu nyata.
Joshua
@Jushua: Memory overcommitment mungkin bukan default atau bahkan mungkin tergantung pada sistem operasi.
jlliagre
Saya memiliki server NAS dengan 8GB RAM, itu akan berjalan hingga 2 VM. Saya tidak melakukan swap. Jika mulai banyak bertukar, berarti sudah mati. Jadi itu sangat mendukung argumen Anda. Di sisi lain, saya masih menggunakan desktop berkarat saya dengan terbatas pada 1GB RAM dan di sana saya memiliki swap untuk menangani memori yang jarang. Itu membuat segalanya sedikit lebih lambat tetapi membantu saya membuat Firefox dan aplikasi lain dibuka pada saat yang sama.
Huygens
Saya menemukan pemicu pembunuh OOM terlambat, hanya setelah semua cache dikosongkan dan sistem menjadi lambat. Untuk menjaga sistem saya cepat, saya menggunakan earlyoom atau nohang untuk melakukan pekerjaan yang sama tetapi sebelumnya! Dapat digunakan dengan atau tanpa swap.
joeytwiddle

Jawaban:

28

Jangan membingungkan swap (sebagai) area disk) dan (untuk) swap (sebagai metode untuk memindahkan halaman memori dari RAM ke disk dan secara timbal balik).

Swapping yang berlebihan adalah sesuatu yang harus dihindari karena alasan kinerja tetapi memiliki area swap tidak selalu menjadi masalah.

Pada sistem, seperti Linux, memori overcommit, yaitu yang memungkinkan proses mengalokasikan lebih banyak memori daripada yang tersedia, kehabisan RAM dengan pertukaran yang tidak cukup untuk menangani situasi akan memicu pembunuh OOM. Anda harus memercayai algoritma yang digunakan untuk memilih proses "benar" untuk dibunuh, dan menerima satu atau lebih proses Anda untuk dibunuh tanpa diberi kesempatan untuk mematikan dengan benar. Berikut adalah analogi terkenal yang menjelaskan mengapa pembunuh OOM mungkin bukan ide yang baik sama sekali.

Pada sistem seperti Solaris, yang tidak overcommit memori, yaitu yang memastikan reservasi memori selalu didukung oleh memori virtual, apakah dalam RAM atau pada disk, memiliki area swap yang memadai mutlak diperlukan jika tidak, bagian berpotensi signifikan dari RAM akan menjadi terbuang.

Jlliagre
sumber
1
Apakah Anda yakin bahwa poin tentang Solaris masih benar? blogs.oracle.com/jimlaurent/entry/solaris_faq_myths_and_facts menyatakan: Memori virtual saat ini terdiri dari jumlah total RAM fisik dan ruang swap pada disk. Solaris TIDAK memerlukan ruang swap untuk dikonfigurasi sama sekali. Jika Anda memilih opsi ini, setelah RAM penuh, Anda tidak akan dapat memulai proses baru. Saya rasa saya mengerti apa maksud Anda - jika Anda ingin mmap sesuatu yang lebih besar daripada ram fisik tanpa swap Anda tidak bisa? (Terlepas dari mmap itu adalah inisialisasi malas).
synthesizerpatel
5
Ya, saya yakin pendapat saya tentang Solaris masih benar. Bahkan ketika kutipan Jim Laurent Anda benar, yaitu Solaris tidak meminta swap, tidak memiliki swap berarti semua reservasi memori (yaitu malloc) perlu didukung oleh RAM, bahkan sementara beberapa memori yang dialokasikan tidak digunakan. Ini tidak terkait dengan mmap besar atau tmpfs, meskipun tmpfs juga merupakan alasan mengapa Anda mungkin ingin bertukar dengan Solaris (dan Linux juga dalam hal ini).
jlliagre
1
Pembaruan untuk Linux: overcommiting dapat dimatikan, algoritma OOM dapat dimodifikasi, Anda bahkan dapat memiliki penangan OOM Anda sendiri dengan cgroups.
peterph
1
@peterph Menonaktifkan overcommitting di Linux membuat swap lebih sedikit menjadi anakronisme Jika Anda tidak terlalu berkomitmen, Anda harus memastikan Anda memiliki area swap yang cukup besar untuk semua reservasi untuk didukung.
jlliagre
1
Memori virtual yang disediakan oleh garpu tergantung pada ukuran program yang melakukannya. Katakanlah Anda memiliki java VM menggunakan forking memori 2 GB, sementara itu akan membutuhkan 2 GB lebih. Jika ini terjadi saat Anda memiliki 2 GB yang tersedia atau secara bersamaan beberapa kali, satu atau lebih garpu akan gagal. Ini adalah situasi umum dengan OS yang tidak terlalu berkomitmen, dan dengan Linux juga ketika overcommitting dinonaktifkan. Ini dapat dengan mudah diperbaiki dengan memiliki area swap yang cukup besar dimana IMHO adalah solusi yang lebih baik daripada overcommitment memori.
jlliagre
3

Saya tahu satu alasan untuk terus bertukar. Saya memiliki aplikasi yang membutuhkan banyak memori yang dapat saya konfigurasi untuk sistem saya. Ia menggunakan Hadoop, yang pada satu bagian dari pemrosesan melakukan fork dan exec untuk menjalankan perintah unix tunggal (saya pikir "uname" atau "user" atau sesuatu yang mereka tidak dapat menemukan yang setara dengan Java). Tampaknya java tidak melakukan vfork dengan menyalin pada semantik tulis seperti aplikasi asli. Jika saya memulai aplikasi saya menggunakan 4Gb RAM, ketika garpu, garpu menggunakan 4Gb RAM lain, tetapi kemudian dengan cepat melepaskannya. Jika saya tidak memiliki swap 4Gb untuk Hadoop untuk bertukar, saya harus membayar untuk 8Gb RAM hanya untuk memiliki 4Gb untuk aplikasi saya.

Paul Tomblin
sumber
Ini adalah poin yang bagus, tetapi bukan refleksi dari fork modern () - Di Linux dan FreeBSD (dan, seolah-olah OSX?) Fork () diimplementasikan melalui penggunaan halaman copy-on-write. Copy-on-write (atau COW) adalah teknik untuk menunda atau sama sekali mencegah penyalinan data. Daripada menduplikasi ruang alamat proses, orang tua dan anak dapat berbagi satu salinan. Namun, data ditandai sedemikian rupa sehingga jika ditulis, duplikat dibuat dan setiap proses menerima salinan unik. Kutipan: forums.freebsd.org/showthread.php?t=26355 dan Linux manual untuk fork ()
synthesizerpatel
Meskipun benar, ada beberapa halaman yang tidak dapat ditandai SAP. Misalnya, halaman yang digunakan untuk tumpukan kernel proses anak baru dan halaman yang digunakan untuk struktur data internal (the files_struct, the struct signals, the task_struct,, dan lainnya). Juga, banyak halaman yang dapat dieksekusi bukan kode posisi-tergantung (PIC) dan dengan demikian halaman-halaman kode yang dapat dieksekusi yang dimodifikasi oleh loader dinamis ( ld-linux.so) harus memiliki ruang swap disediakan untuk mereka bahkan jika tidak ada yang ditulis untuk swap ruang segera. Itu sebabnya saya suka Linux; Anda dapat mematikan swap dan sistem masih berjalan. :)
Azhrei
3

Saya tidak bisa menambah diskusi secara teknis, tetapi saya bisa memberikan beberapa contoh. Notebook lama saya (RAM 2GB RAM kunbuntu) biasanya berjalan dengan swap pada 0. Ketika saya menjalankan transmisi (klien bittorrent) dengan sejumlah torrent yang secara kolektif dapat menggunakan 100 koneksi, swap saya dapat naik. Semakin buruk ketika saya menjalankan XP vm yang menggunakan memori nyata 1GB.

Saya telah melihat orang lain berkomentar bahwa proses intensif memori seperti rendering grafis juga dapat masuk ke swap. Jika Anda hanya melakukannya sesekali, maka itu bukan masalah.

Sejauh masalah OOM, swap sebenarnya bisa menjadi penyelamat karena memberi Anda waktu antara mengidentifikasi masalah dan hal-hal yang terjadi di selatan. Banyak hal yang menggunakan hampir seluruh ingatan saya, jadi saya tidak memperhatikan hal itu, tetapi ketika swap mulai berjalan saya perhatikan itu dan mulai mencari masalah - sebelum itu menggigit saya.

Joe
sumber
Ya, sistem lama tidak dapat melakukan banyak hal tanpa swap diaktifkan. Saya masih memiliki subnotebook lama dengan 256MB RAM, di mana swap diperlukan untuk memulai hampir semua program. Saya percaya pertanyaannya menargetkan sistem modern.
Dmitry Grigoryev
3

Ada satu aplikasi yang sangat bagus untuk ruang swap: ekstensi RAM dengan meletakkan ruang swap pada perangkat penyimpanan yang menggunakan RAM, untuk mengatasi keterbatasan RAM sistem yang dapat diinstal

Lihat http://techreport.com/articles.x/16255 gadgest ini pada dasarnya antarmuka dari S-ATA ke DDR2-RAM. Anda bisa memasukkan RAM hingga 64GB ke dalamnya. Dengan menempatkan ruang swap pada salah satu dari mereka Anda mendapatkan beberapa RAM tambahan yang signifikan. Tentu saja itu tidak secepat RAM sistem biasa. Tapi itu semacam mengubah sistem RAM menjadi semacam lapisan cache tambahan.

serigala betina
sumber
1
Mempertimbangkan harganya ($ 549) tidak akan lebih efisien untuk berinvestasi $ 100 di mainboard yang mendukung 64GB RAM ?
Dmitry Grigoryev
1
@DmitryGrigoryev: Tentu saja. Tetapi kadang-kadang Anda terpaksa menggunakan jenis perangkat keras tertentu (karena untuk alasan batuk sertifikasi sistem medis batuk ) tetapi juga harus berurusan dengan set data sangat besar yang diproduksi dalam waktu yang sangat sedikit (pikirkan pemindai tomografi, datarates> 3GiB / s).
datenwolf
Tidakkah Anda harus mengesahkan drive RAM sebagai perangkat medis juga dalam kasus itu? ;) Tapi ya, saya mengerti.
Dmitry Grigoryev
1
@DmitryGrigoryev: Memang Anda harus melakukannya. Namun sertifikasi perangkat disk S-ATA RAM jauh, jauh lebih mudah daripada sertifikasi mainboard keseluruhan. Saat mencari komputer yang digunakan dalam peralatan medis, Anda biasanya membeli komponen sebanyak mungkin yang bersertifikasi. Untuk bagian-bagian di mana tidak ada sertifikasi tersedia, Anda kemudian melakukan tes dan sertifikasi yang diperlukan sendiri. Terutama ketika bekerja dalam penelitian, di mana penekanannya terletak pada keselamatan pasien dan data tidak digunakan untuk perencanaan perawatan, ini adalah solusi yang paling efektif dan tercepat. BT; DT.
datenwolf
3

Saya sudah menjalankan Linux dan Windows tanpa swap (file paging, dalam nomenklatur Windows), pada notebook / desktop dengan 4Gb atau lebih. Ada beberapa kesempatan ketika kehabisan memori terjadi, saya hanya berurusan dengan mereka. Saya merasa sistem ini lebih cepat, yang lebih saya pedulikan. Tidak ada persyaratan khusus pada beban kerja saya.

Hal yang saya pelajari:

  • Windows "kehilangan" memori dengan waktu, dalam waktu sekitar 20-30 hari uptime saya sampai pada titik ketika saya lebih suka reboot. Saya tidak tahu mengapa ini terjadi. Saya menduga mungkin ada kebocoran pada beberapa driver atau anti-virus. Ketika Anda memiliki file paging, saya percaya ini dapat menempatkan memori yang bocor ini ke file paging, jadi akan lebih sulit untuk melihat masalah ini pada sistem Windows biasa.
  • Penawaran Firefox jauh lebih baik dengan sedikit memori daripada Chrome. Firefox memperingatkan Anda, dan masih berjalan, Chrome macet.
spuk
sumber
2

Saya pikir argumen Anda cukup valid untuk server , di mana kinerjanya penting, dan mengetahui aplikasi mana yang akan bertindak selanjutnya mungkin tidak dapat diprediksi.

Namun untuk desktop , saya menemukan swap berguna ketika saya mendorong dan menjalankan tugas.

Misalnya, jika saya mengerjakan tugas menggunakan aplikasi Adan kemudian saya menemukan saya perlu menggunakan aplikasi Buntuk sesuatu (baik sub-tugas, atau gangguan), maka secara mental lebih mudah bagi saya untuk membiarkan Aswap ke disk saat saya bekerja masuk Bdaripada menutup Adan kemudian ingat untuk memulainya lagi setelah itu.

Ini terutama benar jika Amemegang beberapa negara yang belum disimpan yang tidak akan dipulihkan saat dihidupkan ulang.

Apakah lebih cepat untuk mendorong dan menarik Ake / dari swap, atau menutup dan memulai kembali, tergantung pada aplikasi. (Beberapa berhasil memiliki startup lambat tetapi ukuran perumahan kecil.)

Namun saya setuju bahwa solusi yang lebih baik untuk meningkatkan produktivitas adalah dengan menginstal beberapa RAM tambahan.

joeytwiddle
sumber
Pembaruan: Setelah menulis jawaban ini, saya memiliki laptop dengan banyak RAM dan hard drive yang lambat. Kalau begitu saran saya terbalik! Berikut ini ringkasan pro dan kontra .
joeytwiddle
1

Pada sistem saya, / tmp tumpah untuk menukar jika gobbles RAM terlalu banyak.

Ini jauh lebih cepat daripada menggunakan sistem file nyata untuk / tmp.

Joshua
sumber
Itu cukup berbahaya - jika saya perlu ramf, saya tentukan di fstab (atau opsi) untuk mengatur ukuran secara eksplisit. Kemungkinan besar program dapat menjadi gila dengan alokasi memori karena ia akan mulai membuat file di / tmp. Swap akan menjadi tempat yang buruk untuk file ramf muncul (terutama jika Anda mengandalkan ramf untuk kecepatan)
synthesizerpatel
2
Saya melebihi ukuran RAM di sana sering. tmpfs yang didukung oleh swap secara signifikan lebih cepat daripada ext2 bahkan ketika tumpah.
Joshua
Berguna untuk mengetahui - dan mungkin akan menjadi item penelitian di masa depan untuk melihat - Saya masih khawatir tentang aplikasi mengisi ram saya dengan proksi tmpfs / ramfs di / tmp. Itu memberi saya jeebies heebie!
synthesizerpatel
Kemudian atur batas = ukuran swap.
Joshua
Kebetulan, ini adalah perbedaan antara ramf dan tmpf. tmpfs dapat tumpah ke swap sementara ramfs tidak bisa.
Joshua
1

Ada banyak alasan, ketika swap digunakan.

Biasanya, ketika sistem tidak memiliki cukup memori fisik, kernel dapat meletakkan beberapa aplikasi (bahkan - beberapa bagian dari memori yang digunakan oleh tidak menjalankan aplikasi) untuk bertukar.

Kemudian, ketika aplikasi ini harus melakukan sesuatu (misalnya, beberapa data tiba pada soket atau beberapa penghitung waktu) - kernel akan menempatkan beberapa aplikasi lain untuk swap.

Contoh lain dari penggunaan swap ditangguhkan ke disk.

Mengenai perangkat yang disematkan, semuanya dapat dibagi pada (setidaknya) dua kelompok besar:

  1. mereka menjalankan Linux / Windows atau non-RTOS (Real Time OS) serupa; atau
  2. mereka menjalankan RTOS.

Tentu saja, ada perangkat yang hanya menjalankan beberapa kode (semacam mikrokontroler) dll. Saya tidak akan menjelaskannya karena perangkat semacam itu tidak memiliki OS, jadi membahas pertukaran tidak masuk akal untuk perangkat semacam itu.

Grup pertama perangkat yang disematkan (menjalankan beberapa OS) dapat menggunakan (dan biasanya mereka menggunakan) swap. Dan secara umum, perangkat tersebut menggunakan swap dengan cara yang sama seperti desktop dan server.

Grup kedua perangkat (menjalankan RTOS) tidak menggunakan swap sama sekali, karena RTOS memiliki keterbatasan waktu untuk merespons pada acara, dan

  • membaca dari swap dapat memakan waktu yang tidak terduga
  • perangkat memiliki sejumlah tugas yang telah ditentukan (pada waktu kompilasi) yang tidak perlu dipertukarkan

BTW, ada banyak deskripsi tentang bagaimana linux menggunakan swap, salah satunya adalah http://distilledb.com/blog/archives/date/2009/02/22/swap-files-in-linux.page
Windows menggunakan pendekatan serupa.

dengan mudah-vm
sumber
Juga, swap diperlukan untuk hibernasi (menangguhkan ke disk) kecuali jika Anda menggunakan sesuatu seperti TuxOnIce.
Renan
1

Sepertinya saya bahwa baik hibernasi dan tidur hybrid memerlukan ruang swap di Linux .

Saya tidak pernah menggunakan ruang swap / partisi di Linux sampai dihadapkan dengan kebutuhan untuk menggunakan Hybrid Sleep - karena sleep pada level baterai kritis tidak tersedia di sistem saya, seperti yang ditangani oleh Upower, yang hanya memilih antara Shut-Down, Hibernate dan Hybrid -tidur. (lebih lanjut di sini )

Komunitas
sumber
0

Beberapa kegunaan baik yang saya lihat adalah proses yang menggunakan banyak memori, tetapi tidak kritis terhadap kinerja. Satu kasus adalah Firefox kuno yang memiliki kebocoran memori buruk. Itu akan mengisi RAM dan melimpah untuk menukar tanpa efek buruk. Satu lagi yang kami miliki adalah potongan DNS rekursif kami (yang dengan cepat membangun cache besar yang jarang digunakan).

Penjelasan lain yang pernah saya lihat tentang swap berlari agak di sepanjang baris: "Anda diberitahu untuk selalu mengkonfigurasi SWAP = 2 * RAM. Ini omong kosong, tidak ada hubungan antara RAM dan swap. Swap adalah untuk mengakomodasi lonjakan dalam penggunaan memori. , Anda harus menambahkan memori yang cukup sehingga sebagian besar waktu Anda muat di RAM. Jika beban Anda stabil, Anda tidak perlu swap. Jika beban Anda sangat bervariasi, Anda perlu swap yang cukup untuk paku, dan atur agar swap digunakan jarang cukup sehingga tidak mempengaruhi kinerja secara keseluruhan secara keseluruhan. Meringkas, karena Anda tidak tahu apa lonjakan beban Anda, dan karena disk jauh lebih murah daripada RAM, lakukan konfigurasi SWAP = 2 * RAM. "

Beberapa versi lama Solaris tidak dapat menggunakan swap sama sekali kecuali ada setidaknya swap sebanyak RAM (saya ingat bahwa itu mengalokasikan ruang swap tetap untuk keluar dari RAM atau sesuatu seperti itu), jadi 2 * RAM benar-benar sekitar batas minimum yang masuk akal nilai. Tapi itu ribuan tahun yang lalu, ketika mesin besar kami memiliki 64 MiB RAM dan disk 1 GiB ...

vonbrand
sumber