Tratopedia
ES
Tetapan

Saiz teks

Tema

Kontras tinggi

Versi

v1.81.0

Keluaran yang menjadi asas halaman ini dibina. Itulah versi yang disimpan oleh service worker.

Sistem · Sistem pengendalian · Perkakasan · Laporan teknikalWindows · Linux · macOS · Android

Ringkasan eksekutif · taklimat satu halaman

Swap ialah keadilan tuntutan semula, bukan memori kecemasan

Lima platform, satu mekanisme. Memori anonim — segala yang diperuntukkan oleh sesuatu proses — ialah satu-satunya kelas halaman yang tidak boleh dituntut semula oleh kernel tanpa tempat untuk meletakkannya. Jadi sistem tanpa swap bukannya menghapuskan tekanan memori; ia mengalihkan kesemuanya ke cache halaman dan kod boleh laku, yang kemudiannya dibaca semula daripada cakera berulang-ulang kali. Setiap platform utama kini menjawabnya dengan cara yang sama: mampatkan dalam RAM dahulu, dan sentuh storan kekal hanya apabila pemampatan sudah habis. Windows menamakannya Memory Compression, macOS pula compressor pager, Linux dan Android menamakannya ZRAM — tetapi bentuknya serupa, dan pertukarannya sentiasa satu yang sama: kapasiti yang dibeli dengan kitaran CPU. Apa yang masih memisahkan kelima-limanya adalah sempit, dan hanya tiga perkara yang penting.

Dalam Angka pemampatan & ketahanan

  • ~40%jejak termampat sesebuah halaman (angka era Windows 10)
  • 3:1nisbah pemampatan ZRAM Linux yang tipikal
  • 2.4 PBtulisan yang diserap oleh SSD pengguna yang paling lama bertahan
  • 16.4 yrhayat pemacu 600 TBW yang ditulis 100 GB setiap hari

Hanya Tiga Paksi yang Penting selebihnya hanyalah perincian

PaksiSoalan yang diajukannyaMengapa ia menentukan reka bentuk
Lapisan kekalAdakah swap yang disokong storan wujud sama sekali?Sesetengah pelaksanaan Android hanya mengubah saiz ZRAM — tiada lapisan kedua untuk dilimpahi.
HibernasiBolehkah lapisan itu menyimpan imej suspend-to-disk?Satu-satunya garis pemisah fungsian yang tegas: lapisan termampat dalam RAM dikosongkan ketika but, jadi ia tidak akan mampu.
Jangkauan operatorBerapa banyak jentera yang didedahkan?Windows dan macOS pada dasarnya automatik; Linux mendedahkan tombolnya; Android mendedahkan satu peluncur.

Apa yang Menyusul Permulaan · Perkembangan · Peralihan · Penyelesaian

RentakHalamanApa yang dirangkuminya
承 Konteks2Bentuk dua lapisan yang menjadi titik pertemuan setiap platform, bersebelahan, dan mengapa swap masih layak pada tempatnya.
轉 Pangsi3Di mana reka bentuk ini bertahan dan di mana ia tegang — termasuk dakwaan vendor yang mana bertahan apabila diukur.
合 Resolusi4Laluan yang sebenarnya dilalui oleh sesebuah halaman, tombol yang wujud, dan apa yang perlu dilakukan pada setiap platform.

Kesimpulannya

Melumpuhkan swap tidak mengelakkan I/O cakera di bawah tekanan memori — ia memindahkan thrashing itu daripada halaman anonim kepada cache halaman dan teks program, yang biasanya lebih teruk.

Bingkai semula

Kedalaman swap yang berterusan ialah isyarat saiz, bukan masalah penalaan. Penyelesaiannya ialah lebih banyak RAM, bukan lebih banyak swap.

Sumber · kernel.org /proc/sys/vm · Microsoft Learn · Red Hat · AOSP LMKD · dokumentasi Btrfs · Chris Down, In defence of swap (2018) · TechReport SSD Endurance Experiment (2015)

Dua Lapisan, Lima Nama bentuk yang menjadi titik pertemuan semua

  • Lapisan satu · dalam RAM

    Lapisan Termampat

    CPU dibelanjakan untuk membeli kapasiti

    • Windows Memory Compression — Xpress-Huffman, ke dalam stor yang disimpan di dalam proses System.
    • macOS compressor pager — WKdm; itulah yang membolehkan Apple menghantar konfigurasi RAM yang lebih rendah.
    • Linux ZRAM / zswap — zstd, lzo atau lz4, lazimnya sekitar 3:1.
    • Android ZRAM — sentiasa barisan pertahanan pertama, sebelum sebarang storan disentuh.
  • Lapisan dua · pada storan

    Lapisan Kekal

    dicapai hanya apabila pemampatan sudah habis

    • Windows pagefile.sys; swapfile.sys yang berasingan memindahkan keseluruhan set kerja aplikasi yang digantung dalam satu I/O.
    • Partisyen atau fail pada Linux — setara dari segi fungsi; fail menukar satu pemetaan sistem fail dengan kelenturan.
    • Fail swap dinamik macOS pada volum APFS VM khusus sejak Big Sur.
    • Android — fail swap UFS yang pilihan; inilah sebenarnya “RAM lanjutan” OEM itu.

Platform demi Platform mekanisme sama, pendedahan berbeza

TeknologiBackendHibernasiTermampat
Pagefile Windowsfail pada NTFSimej berasinganya — Xpress-Huffman
Swapfile Windowsfail, aplikasi moden sahajatidakya — stor setiap aplikasi
Partisyen Linuxpartisyen mentahyatidak — gandingkan dengan zswap
Swapfile Linuxfail pada sistem failya, dengan ofsettidak — gandingkan dengan zswap
Linux ZRAMperanti blok dalam RAMtidak sekali-kaliya — itulah tujuannya
Swap dinamik macOSvolum VM APFSyaya — WKdm
Android ZRAMperanti blok dalam RAMtidak sekali-kaliya — lz4 / zstd
RAM lanjutan Androidswapfile pada UFStidakmelalui ZRAM dahulu

Mengapa Swap Masih Layak pada Tempatnya prosa di kiri · angka di kanan

Halaman yang disokong fail boleh digugurkan dan dibaca semula; halaman anonim tiada tempat untuk pergi. Tanpa swap ia sekadar tidak boleh dituntut semula, jadi kernel terpaksa mengambil setiap bait yang diperlukannya daripada cache halaman dan teks program sebaliknya. Itulah sebabnya hujah terkuat bagi swap bukan kapasiti tetapi simetri: ia menjadikan kedua-dua kelas halaman sama-sama layak dituntut semula, dan membiarkan kernel mengusir mana-mana yang benar-benar lebih sejuk. Sokongan itu bersifat institusi, bukan retorik — halaman manual systemd-oomd sendiri memetik hujah ini dan menyatakan bahawa swap patut dihidupkan agar ia berfungsi dengan baik, kerana sistem tanpa swap mencapai livelock dengan lebih cepat dan melaparkan pembunuh ruang pengguna yang sepatutnya menyelamatkannya.

  • 2kelas halaman yang sama-sama boleh dituntut semula
  • 4.20+kernel dengan PSI — tekanan kelihatan sebelum pembunuh OOM

Sumber · Chris Down, In defence of swap · systemd-oomd(8) · dokumentasi PSI kernel.org · dokumentasi huluan Btrfs

Di Mana Ia Bertahan, Di Mana Ia Tegang empat dimensi

DimensiBertahanTegang
Hibernasipartisyen atau fail sebenar boleh menyimpan imej itulapisan termampat dalam RAM dikosongkan ketika but — ia tidak akan mampu menggantikannya
Ketahanan flashenam SSD pengguna semuanya melebihi taraf masing-masing, satu sehingga 2.4 PBeMMC gred rendah dan tulisan pelayan yang berterusan masih perlu dijaga
Dakwaan vendormenyiasat sistem fail menyelesaikannya — sesetengahnya memang menambah lapisan sebenar“8 GB + 8 GB = 16 GB” ialah pemasaran, bukan aritmetik
Mencampurkan lapisansetiap lapisan kukuh apabila digunakan bersendirianZRAM di sebelah swap cakera mengundang penyongsangan LRU

Apa yang Sebenarnya Dilakukan oleh Peluncur Android diselesaikan dengan penyiasatan, bukan dengan prosa

KelakuanApa yang berubah apabila anda menggerakkan peluncurKos
Sasaran ZRAM sahajaTiada partisyen dan tiada kawasan swap yang berubah — hanya berapa banyak RAM yang diberikan kepada lapisan termampat.CPU
Swap storan sebenarRuang bebas pada partisyen data berkurang tepat sebanyak jumlah yang diminta, sementara kolam ZRAM kekal tidak berubah.tulisan UFS
Dua nama, satu perkaraPenjenamaan penjadual dan pengoptimuman memori bukan swap; hanya peluncur GB itu sahaja.kekeliruan
Bawah 4 GB RAMBenar-benar berguna — lebih banyak aplikasi latar belakang terus hidup dan bukannya dibunuh lalu dimuatkan semula.berbaloi
12 GB RAM ke atasJarang dicapai dalam penggunaan harian; pengulas melaporkan animasi yang lebih lancar apabila ia dimatikan.bingkai tergugur

Persoalan Ketahanan, Diselesaikan prosa di kiri · angka di kanan

Ketakutan bahawa swap akan menghauskan pemacu ialah bantahan yang paling berkekalan, dan ia sebahagian besarnya sudah terjawab. Dalam eksperimen jangka panjang yang paling terkenal, enam SSD pengguna ditulis sehingga mati: kegagalan pertama datang melepasi 700 TB, dan yang terakhir bertahan menyerap 2.4 PB — setiap pemacu jauh melebihi ketahanan tarafnya. Vendor menyatakan dengan jelas bahawa angka taraf menandakan penghujung waranti, bukan titik kegagalan. Aritmetiknya menjadikannya nyata: pemacu 600 TBW yang ditulis 100 GB setiap hari bertahan lebih daripada enam belas tahun, dan hampir tiada sesiapa menulis sebanyak itu. Dua kes masih wajar dijaga — eMMC gred rendah dalam telefon bajet, dan pelayan di bawah beban tulisan berat yang berterusan, yang sepatutnya ditentukan mengikut taraf tulisan harian dan bukannya kapasiti.

  • 6 / 6pemacu yang melebihi tarafnya
  • 2kes yang masih memerlukan perhatian

Titik Perubahan kronologi

  1. 2015Satu eksperimen ketahanan jangka panjang tamat: setiap SSD pengguna yang diuji melebihi tarafnya, yang pertama hanya gagal selepas melepasi 700 TB.
  2. 2015Windows 10 menyisipkan Memory Compression antara aktiviti penghalamanan dengan pagefile, mengurangkan kira-kira separuh tulisan halaman ke cakera.
  3. 2018Hujah keadilan tuntutan semula diterbitkan, membingkai semula swap daripada rizab kecemasan kepada mekanisme rutin.
  4. 2018PSI mendarat dalam kernel, membolehkan ruang pengguna bertindak atas masa tersekat sebelum pembunuh OOM sempat berjalan.
  5. 2020macOS memindahkan swap ke volum APFS tersembunyi yang khusus dan berkongsi ruang secara dinamik dengan sistem.
  6. 2020→Sebuah distribusi arus perdana menghantar ZRAM secara lalai dan dengan sengaja sebagai satu-satunya peranti swap, mengelakkan penyongsangan yang diundang oleh pencampuran lapisan.
  7. 2021→OEM Android menghantar peluncur “RAM lanjutan” — sesetengahnya hanya mengubah saiz ZRAM, yang lain benar-benar menulis ke storan.

Sumber · TechReport SSD Endurance Experiment · Microsoft Learn · Android Authority (siasatan adb terhadap telefon yang dijual) · dokumentasi vendor

Laluan yang Dilalui Sesebuah Halaman enam langkah, mengikut urutan

  1. 01Residendalam RAM
  2. 02Mampatmasih dalam RAM
  3. 03Limpahke cakera atau UFS
  4. 04TekananPSI melaporkan tersekat
  5. 05Bertindak awalOOM ruang pengguna
  6. 06Tambah RAMpenyelesaian sebenar

Tombol yang Benar-benar Wujud Linux · nilai lalai dalam kurungan

TombolApa yang dikawalnyaBila perlu mengubahnya
vm.swappiness (60)Sejauh mana memori anonim sanggup dihantar ke swap berbanding menuntut semula cache halaman.Naikkannya melebihi 100 apabila swap lebih pantas daripada sistem fail, seperti dengan ZRAM.
vm.vfs_cache_pressure (100)Sejauh mana agresifnya cache direktori dan inod dituntut semula berbanding cache halaman.Jarang. Menetapkannya kepada sifar mengundang pembunuh kehabisan memori.
vm.watermark_scale_factor (10)Bila tuntutan semula latar belakang terjaga, dan berapa banyak yang dibebaskannya setelah terjaga.Naikkannya untuk mengekalkan lebih banyak memori bebas pada mesin yang terdedah kepada lonjakan peruntukan mengejut.
Sifat LMKD AndroidAmbang swap bebas dan thrashing yang menentukan proses mana yang dibunuh, dan bila.Root sahaja, dan mengikut peranti — pembunuh dalam kernel telah dibuang bertahun-tahun lalu.

Dua Pendirian, Bukan Lima siapa yang menentukan — vendor, atau anda

  • Windows · macOS

    Biarkan Sahaja

    vendor sudah pun memilih

    • Pemampatan dan limpahan bersepadu serta automatik; tiada penalaan yang perlu dibuat.
    • Melumpuhkan fail halaman mengorbankan longgokan ranap dan merendahkan siling komit — pertukaran yang buruk.
    • Pada macOS, melumpuhkan swap bermakna melemahkan perlindungan sistem; jawapannya ialah lebih banyak RAM.
    • Perhatikan penunjuk tekanan, bukan angka swap.
  • Linux · Android

    Pilih dengan Sengaja

    nilai lalai bukanlah keputusannya

    • Tentukan lapisannya dahulu — hibernasi atau tidak — kemudian tetapkan saiznya.
    • Sistem fail copy-on-write mengenakan kekangan sebenar pada fail swap; ikut prosedur mereka sendiri.
    • Gandingkan pemantauan tekanan dengan pembunuh ruang pengguna, jika tidak tiada apa-apa yang bertindak sehingga mesin tersekat.
    • Pada telefon, tafsirkan peluncur itu sebagai dail aplikasi latar belakang yang berkos pada kadar bingkai.

Saranan mengikut platform

  • Windows — biarkan pagefile diurus oleh sistem. Melumpuhkannya demi menuntut semula beberapa GB melepaskan longgokan ranap dan boleh menggoyahkan mesin; kehausan SSD bukan pertimbangan yang nyata.
  • Linux — pilih satu lapisan, bukan kedua-duanya. ZRAM pada separuh RAM dengan zstd untuk desktop; partisyen atau fail sebenar sekurang-kurangnya sebesar RAM jika anda berhibernasi. Jangan sekali-kali menjalankan ZRAM di sebelah swap cakera.
  • Pelayan Linux — gandingkan PSI dengan daemon OOM ruang pengguna. Tanpanya, pembunuh kernel hanya menyala selepas mesin sudah pun tersekat.
  • Android — hidupkannya pada 4 GB, matikannya pada 12 GB. Storan beberapa peringkat magnitud lebih perlahan daripada RAM, dan pada telefon perdana kos yang dilaporkan ialah bingkai tergugur.

Di mana ia berlabuh

Tanya tiga soalan sahaja: adakah anda memerlukan hibernasi, adakah anda mencampurkan lapisan, dan adakah kedalaman swap memberitahu anda untuk membeli RAM? Selebihnya hanyalah perincian.

Sumber · panduan penetapan saiz swap Red Hat · kernel.org /proc/sys/vm · AOSP LMKD · angka berbeza mengikut versi platform dan tarikh