Apa Yang Berlaku
Sistem pengendalian · Kejuruteraan prestasi · Perkakasan · Laporan Teknikalditerbitkan 11 Ogos 2026 · rekod dikemas kini sehingga 28 Sep 2026
Ringkasan eksekutif · taklimat satu halaman
Swap ialah keadilan tuntutan semula, bukan memori kecemasan
Lima platform, satu mekanisme — dengan satu pengecualian. 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. Windows, macOS dan Android 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, Android menamakannya ZRAM — dan desktop Linux yang mengaktifkan ZRAM turut berbuat demikian. Dokumentasi semasa Red Hat Enterprise Linux untuk mencipta swap pula tidak menyebut sebarang langkah pemampatan: hanya partisyen atau fail, tiada yang lain. Pertukaran itu, di mana sahaja pemampatan berlaku, 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 (Windows 10, 2015)
- 2:1nisbah pemampatan yang diandaikan oleh dokumentasi rasmi kernel Linux semasa menentukan saiz zram
- 2.4 PBtulisan yang diserap oleh pemacu paling lama bertahan dalam ujian ketahanan SSD 2015
- 16.4 tahunhayat pemacu 600 TBW yang ditulis 100 GB setiap hari
Rekod, Bergred dokumentasi dahulu, ujian peranti kemudian
| Gred | Apa | Bagaimana ia disemak |
|---|---|---|
| Disahkan | Windows, macOS dan Android semuanya memampatkan memori tidak aktif dalam RAM sebelum menulis apa-apa ke storan kekal. | Dokumentasi semasa Microsoft, Apple dan AOSP sendiri, dibaca terus. |
| Disahkan | Stor pemampatan Windows menggunakan format XPRESS biasa — bukan varian XPRESS_HUFF berkod Huffman yang digunakan di tempat lain dalam Windows. | Rujukan API Pemampatan Microsoft sendiri menamakan kedua-duanya sebagai format berbeza; satu analisis kod kernel, disemak dengan Windows Internals, menamakan yang mana digunakan oleh pengurus memori. |
| Disahkan | Fail swap Btrfs disokong sejak kernel 5.0, tetapi hanya pada sistem fail satu peranti, dengan fail itu sendiri tidak dimampatkan dan tiada jumlah semakan. | Dibaca terus dalam dokumentasi rasmi projek Btrfs. |
| Disahkan — pengecualian | Panduan semasa Red Hat Enterprise Linux untuk mencipta swap hanya menyebut partisyen atau fail — langsung tiada langkah pemampatan. | Dibaca terus; ketiga-tiga belas subseksyen bab semasa tidak pernah menyebut zram atau zswap. |
| Disahkan, bergantung peranti | Togol “RAM lanjutan” OEM Android yang mana menyentuh storan, dan yang mana hanya mengubah saiz ZRAM. | Ujian adb ke atas dua telefon perdana semasa — teks tetapan peranti sendiri tidak menyatakan yang mana ia sebenarnya. |
Garis Masa
Titik Perubahan kronologi
- 2015Satu eksperimen ketahanan jangka panjang tamat: enam SSD pengguna ditulis sehingga gagal; setiap satu melebihi ketahanan tarafnya, yang pertama hanya gagal selepas melepasi 700 TB.
- 2015Windows 10 menyisipkan Memory Compression antara aktiviti penghalamanan dengan pagefile, mengurangkan kira-kira separuh tulisan halaman ke cakera.
- 2018Hujah keadilan tuntutan semula diterbitkan, membingkai semula swap daripada rizab kecemasan kepada mekanisme rutin.
- 2018PSI digabungkan ke dalam kernel Linux, versi 4.20, membolehkan ruang pengguna bertindak atas masa tersekat sebelum pembunuh OOM sempat berjalan.
- 2019Btrfs memperoleh sokongan fail swap pada kernel 5.0, dengan kekangan sebenar: fail itu mesti berada pada sistem fail satu peranti dan tidak dimampatkan.
- 2019Susunan but APFS macOS mula mewajibkan volum khusus yang tersembunyi untuk menyimpan fail swap, bermula macOS 10.15.
- 2020Fedora mula menghantar ZRAM sebagai satu-satunya peranti swap lalai bermula keluaran 33, menggugurkan swap berasaskan cakera walaupun hibernasi sepatutnya masih dapat disokong.
- 2021→OEM Android menghantar peluncur “RAM lanjutan” — sesetengahnya hanya mengubah saiz ZRAM, yang lain benar-benar menulis ke storan.
- 2025Ujian berasaskan adb ke atas dua telefon perdana semasa akhirnya menyelesaikannya: peluncur satu pengeluar hanya mengubah saiz lapisan termampat, manakala satu lagi benar-benar menulis ke storan.
Apa yang Tiada Tarikh jurang yang jujur
Dua perkara sukar ditentukan tarikhnya. Peluncur “RAM lanjutan” OEM Android tiba telefon demi telefon dan bukan pada satu tarikh pengumuman tunggal, jadi julat di atas ialah bentuk paling jujur untuk menyatakannya. Kod sumber pemampat yang diterbitkan sendiri oleh Apple menamakan gabungan algoritmanya dengan jelas, tetapi versi macOS yang sepadan dengan fail yang diterbitkan itu tidak dapat dipastikan, begitu juga sama ada pemampat yang dihantar sekarang sepadan tepat dengannya.
Hujah
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
Hanya Tiga Paksi yang Penting selebihnya hanyalah perincian
| Paksi | Soalan yang diajukannya | Mengapa ia menentukan reka bentuk |
|---|---|---|
| Lapisan kekal | Adakah swap yang disokong storan wujud sama sekali? | Sesetengah pelaksanaan Android hanya mengubah saiz ZRAM — tiada lapisan kedua untuk dilimpahi. |
| Hibernasi | Bolehkah 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 operator | Berapa banyak jentera yang didedahkan? | Windows dan macOS pada dasarnya automatik; Linux mendedahkan tombolnya; Android mendedahkan satu peluncur. |
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.
Apa Yang Ditambah Oleh Pihak Lain
Dua Lapisan, Lima Nama bentuk yang menjadi titik pertemuan semua
Lapisan satu · dalam RAM
Lapisan Termampat
- Windows Memory Compression — format
XPRESSbiasa (bukan Huffman), ke dalam stor yang disimpan di dalam proses System. - macOS compressor pager — hibrid: WKdm apabila berbaloi, varian LZ4 di tempat lain.
- Linux ZRAM / zswap — zstd, lzo atau lz4; dokumentasi kernel sendiri menetapkan saiz zram untuk nisbah 2:1.
- Android ZRAM — sentiasa barisan pertahanan pertama, sebelum sebarang storan disentuh.
- Windows Memory Compression — format
Lapisan dua · pada storan
Lapisan Kekal
- Windows
pagefile.sys;swapfile.sysyang 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, diwajibkan oleh susunan but Apple sendiri sejak macOS 10.15.
- Android — peluncur “RAM lanjutan” OEM berbeza-beza mengikut pengeluar: sesetengah benar-benar menambah fail swap UFS, yang lain hanya mengubah saiz lapisan termampat dan langsung tidak menyentuh storan.
- Windows
Platform demi Platform mekanisme sama, pendedahan berbeza
| Teknologi | Backend | Hibernasi | Termampat |
|---|---|---|---|
| Pagefile Windows | fail pada NTFS | imej berasingan | ya — XPRESS biasa |
| Swapfile Windows | fail, aplikasi moden sahaja | tidak | ya — stor setiap aplikasi |
| Partisyen Linux | partisyen mentah | ya | tidak — gandingkan dengan zswap |
| Swapfile Linux | fail pada sistem fail | ya, dengan ofset | tidak — gandingkan dengan zswap |
| Linux ZRAM | peranti blok dalam RAM | tidak sekali-kali | ya — itulah tujuannya |
| Swap dinamik macOS | volum VM APFS | ya | ya — WKdm / LZ4 |
| Android ZRAM | peranti blok dalam RAM | tidak sekali-kali | ya — lz4, zstd atau lzo |
| RAM lanjutan Android | swapfile pada UFS | tidak | melalui ZRAM dahulu |
Di Mana Ia Bertahan, Di Mana Ia Tegang empat dimensi
| Dimensi | Bertahan | Tegang |
|---|---|---|
| Hibernasi | partisyen atau fail sebenar boleh menyimpan imej itu | lapisan termampat dalam RAM dikosongkan ketika but — ia tidak akan mampu menggantikannya |
| Ketahanan flash | enam SSD pengguna semuanya melebihi taraf masing-masing, satu sehingga 2.4 PB | eMMC gred rendah dan tulisan pelayan yang berterusan masih perlu dijaga |
| Dakwaan vendor | menyiasat sistem fail menyelesaikannya — sesetengahnya memang menambah lapisan sebenar | “8 GB + 8 GB = 16 GB” ialah pemasaran, bukan aritmetik |
| Mencampurkan lapisan | setiap lapisan kukuh apabila digunakan bersendirian | ZRAM di sebelah swap cakera mengundang penyongsangan LRU |
Apa yang Sebenarnya Dilakukan oleh Peluncur Android diselesaikan dengan penyiasatan, bukan dengan prosa
| Kelakuan | Apa yang berubah apabila anda menggerakkan peluncur | Kos |
|---|---|---|
| Sasaran ZRAM sahaja | Tiada partisyen dan tiada kawasan swap yang berubah — hanya berapa banyak RAM yang diberikan kepada lapisan termampat. | CPU |
| Swap storan sebenar | Ruang bebas pada partisyen data berkurang tepat sebanyak jumlah yang diminta, sementara kolam ZRAM kekal tidak berubah. | tulisan UFS |
| Dua nama, satu perkara | Penjenamaan penjadual dan pengoptimuman memori bukan swap; hanya peluncur GB itu sahaja. | kekeliruan |
| Bawah 4 GB RAM | Benar-benar berguna — lebih banyak aplikasi latar belakang terus hidup dan bukannya dibunuh lalu dimuatkan semula. | berbaloi |
| 12 GB RAM ke atas | Jarang dicapai dalam penggunaan harian; satu ujian praktikal mendapati telefon yang menambah swap storan sedikit kurang responsif berbanding yang hanya menggunakan ZRAM, walaupun tidak ketara pada telefon 16 GB. | responsif |
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. Panduan ketahanan milik sebuah pengeluar pemacu sendiri menyatakannya dengan jelas: kebanyakan pengeluar menamatkan waranti pada angka taraf atau had masa, yang mana tiba dahulu, dan pemacu pengguna terus berfungsi jauh melepasi tarafnya — angka taraf ialah had 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
Laluan yang Dilalui Sesebuah Halaman enam langkah, mengikut urutan
- 01Residendalam RAM
- 02Mampatmasih dalam RAM
- 03Limpahke cakera atau UFS
- 04TekananPSI melaporkan tersekat
- 05Bertindak awalOOM ruang pengguna
- 06Tambah RAMpenyelesaian sebenar
Tombol yang Benar-benar Wujud Linux · nilai lalai dalam kurungan
| Tombol | Apa yang dikawalnya | Bila 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. |
| ro.lmk.swap_free_low_percentage (10) | Peratusan swap bebas yang di bawahnya lmkd menganggap sistem kehabisan swap. | Root sahaja, mengikut peranti — pembunuh dalam kernel dibuang sebaik Linux mencapai 4.12. |
| ro.lmk.psi_complete_stall_ms (700) | Milisaat tersekat PSI memori lengkap — semua tugas tersekat serentak — yang mencetuskan pembunuhan tahap kritikal. | Ambang lebih rendah (sehingga 70ms) dihantar pada peranti RAM rendah; root sahaja. |
Kesimpulan
Dua Pendirian, Bukan Lima siapa yang menentukan — vendor, atau anda
Windows · macOS
Biarkan Sahaja
- 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
- 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 dengan sedikit kos pada responsif.
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. Elakkan menjalankan ZRAM di sebelah swap cakera sedapat mungkin: halaman sejuk memenuhi lapisan pantas dan menolak set kerja ke 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 satu-satunya kos yang dilaporkan ialah responsif yang sedikit berkurang.
Pengecualian, Diulangi semak taburan anda sendiri
Bukan satu konvensyen
“Mampat dahulu, limpah kemudian” menggambarkan Windows, macOS, Android, dan desktop Linux yang mengaktifkan ZRAM. Ia tidak menggambarkan nilai lalai semasa yang didokumenkan oleh Red Hat Enterprise Linux sendiri, iaitu partisyen atau fail tanpa sebarang langkah pemampatan. Pelayan yang dibina daripada nilai lalai itu tiada lapisan termampat untuk bertahan sebelum storan disentuh — sesuatu yang wajar disemak sebelum menganggap corak di atas terpakai kepadanya.
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.
Perkara yang tidak dapat disahkan
Dua dakwaan tidak dapat disahkan apabila dicari pada 28 Sep 2026, jadi halaman ini tidak menegaskannya.“WKdm; itulah yang membolehkan Apple menghantar konfigurasi RAM yang lebih rendah” — Laporan belum disahkan: satu penjelasan yang diterbitkan oleh seorang pembangun berhujah bahawa pengurusan memori macOS ialah sebab Mac 8 GB masih boleh digunakan, jadi idea itu mempunyai pencerita yang boleh dikenal pasti, tetapi Apple tidak pernah berkata demikian dan tiada apa yang ditemui mengaitkannya dengan WKdm. “Pengulas melaporkan animasi yang lebih lancar apabila ia dimatikan”, tentang telefon Android dengan RAM 12 GB ke atas — Laporan belum disahkan: media teknologi melaporkan animasi yang lebih lancar selepas ciri itu dimatikan pada telefon secara umum, tetapi tiada laporan yang ditemui menyatakannya tentang telefon 12 GB, dan satu-satunya ujian praktikal pada telefon 16 GB tidak mendapati perbezaan yang ketara.