Qué ocurrió
Sistemas operativos · Ingeniería de rendimiento · Hardware · Informe técnicopublicado el 11 ago 2026 · registro actualizado a 3 sep 2026
Resumen ejecutivo · informe de una página
El swap es equidad de recuperación, no memoria de emergencia
Cinco plataformas, un mecanismo — con una excepción. La memoria anónima — todo lo que reserva un proceso — es la única clase de páginas que un núcleo no puede recuperar sin un sitio donde ponerla. Así que un sistema sin swap no ha eliminado la presión de memoria: la ha redirigido entera hacia la caché de páginas y el código ejecutable, que después se releen del disco una y otra vez. Windows, macOS y Android responden ya de la misma manera: comprimir primero en la RAM y tocar el almacenamiento persistente solo cuando la compresión se agota. Windows lo llama Memory Compression, macOS un compressor pager, Android lo llama ZRAM — y un escritorio Linux con ZRAM activado hace lo mismo. La documentación actual de Red Hat Enterprise Linux para crear swap no describe ningún paso de compresión: una partición o un archivo, nada más. El intercambio, allí donde la compresión se ejecuta, es siempre el mismo: capacidad comprada con ciclos de CPU. Lo que aún separa a las cinco es estrecho, y solo importan tres cosas.
En cifras compresión & resistencia
- ~40%huella comprimida de una página (Windows 10, 2015)
- 2:1ratio de compresión que la documentación del núcleo Linux asume al dimensionar zram
- 2.4 PBescrituras absorbidas por la unidad más longeva en una prueba de resistencia de SSD de 2015
- 16.4 añosvida de una unidad de 600 TBW en la que se escriben 100 GB cada día
El registro, graduado primero la documentación, al final las pruebas en el dispositivo
| Grado | Qué | Cómo se comprobó |
|---|---|---|
| Confirmado | Windows, macOS y Android comprimen la memoria inactiva en RAM antes de escribir nada en el almacenamiento persistente. | La documentación actual de Microsoft, Apple y AOSP, leída directamente. |
| Confirmado | El almacén de compresión de Windows usa el formato XPRESS simple, no la variante XPRESS_HUFF con codificación Huffman que se usa en otras partes de Windows. | La propia referencia de la API de compresión de Microsoft nombra ambos como formatos distintos; un análisis del código del núcleo, contrastado con Windows Internals, indica cuál usa el gestor de memoria. |
| Confirmado | Un archivo de swap en Btrfs se admite desde el núcleo 5.0, pero solo en un sistema de archivos de un único dispositivo, con el propio archivo sin comprimir y sin suma de comprobación. | Leído directamente en la documentación oficial del proyecto Btrfs. |
| Confirmado — la excepción | La guía actual de Red Hat Enterprise Linux para crear swap solo nombra una partición o un archivo: ningún paso de compresión en absoluto. | Leído directamente; las trece subsecciones del capítulo actual no mencionan zram ni zswap en ningún momento. |
| Confirmado, según el dispositivo | Qué interruptor de “RAM ampliada” de cada fabricante de Android toca el almacenamiento, y cuál solo redimensiona la ZRAM. | Una prueba por adb en dos móviles insignia actuales — el propio texto de ajustes del dispositivo no dice cuál es. |
Cronología
Puntos de inflexión cronológico
- 2015Termina un experimento de resistencia de larga duración: se escribe en seis SSD de consumo hasta que fallan; todos superan su resistencia nominal, y el primero solo falla pasados los 700 TB.
- 2015Windows 10 inserta Memory Compression entre la actividad de paginación y el pagefile, reduciendo aproximadamente a la mitad las escrituras de páginas en disco.
- 2018Se publica el argumento de la equidad de recuperación, que replantea el swap de reserva de emergencia a mecanismo rutinario.
- 2018PSI se fusiona en el núcleo Linux, versión 4.20, y permite al espacio de usuario actuar sobre el tiempo de bloqueo antes de que el asesino OOM llegue a ejecutarse.
- 2019Btrfs obtiene soporte de archivos de swap en el núcleo 5.0, con restricciones reales: el archivo debe estar en un sistema de archivos de un único dispositivo y sin comprimir.
- 2019El esquema de arranque APFS de macOS empieza a exigir un volumen dedicado y oculto para los archivos de swap, desde macOS 10.15.
- 2020Fedora empieza a distribuir ZRAM como único dispositivo de swap por defecto desde la versión 33, renunciando al swap en disco incluso donde la hibernación seguiría siendo posible.
- 2021→Los fabricantes de Android incluyen deslizadores de “RAM ampliada” — unos solo redimensionan la ZRAM, otros escriben realmente en el almacenamiento.
- 2025Una prueba mediante adb en dos buques insignia actuales lo zanja: el deslizador de un fabricante solo redimensiona la capa comprimida, el del otro sí escribe en el almacenamiento.
Lo que no tiene fecha vacíos honestos
Dos cosas se resisten a una fecha. Los deslizadores de “RAM ampliada” de los fabricantes de Android llegaron teléfono a teléfono, no en una fecha anunciada de una vez, así que el intervalo de arriba es la forma honesta de mostrarlo. El código fuente del compresor que Apple ha publicado nombra con claridad su combinación de algoritmos, pero no está establecido a qué versión de macOS corresponde ese archivo publicado, ni si el compresor que se distribuye actualmente coincide exactamente con él.
El argumento
Por qué el swap sigue mereciendo su sitio prosa a la izquierda · cifras a la derecha
Las páginas respaldadas por archivo se pueden descartar y releer; las páginas anónimas no tienen adónde ir. Sin swap son sencillamente irrecuperables, así que el núcleo debe tomar cada byte que necesita de la caché de páginas y del texto del programa. Por eso el argumento más fuerte a favor del swap no es la capacidad sino la simetría: hace que ambas clases de páginas sean igual de elegibles para la recuperación y permite al núcleo desalojar la que esté realmente más fría. El respaldo es institucional, no retórico — la propia página de manual de systemd-oomd cita este argumento y afirma que el swap debería estar activado para que funcione bien, porque un sistema sin swap alcanza antes el livelock y deja sin recursos al mismísimo asesino en espacio de usuario que debía rescatarlo.
- 2clases de páginas igualmente recuperables
- 4.20+núcleo con PSI — presión visible antes del asesino OOM
Los únicos tres ejes que importan todo lo demás es detalle
| Eje | La pregunta que plantea | Por qué decide el diseño |
|---|---|---|
| Capa persistente | ¿Existe siquiera un swap respaldado por almacenamiento? | Algunas implementaciones de Android solo redimensionan la ZRAM — no hay una segunda capa a la que volcar. |
| Hibernación | ¿Puede la capa albergar una imagen de suspensión a disco? | La única línea divisoria funcional tajante: una capa comprimida en RAM se borra al arrancar, así que nunca puede. |
| Alcance del operador | ¿Cuánta maquinaria queda expuesta? | Windows y macOS son en la práctica automáticos; Linux expone los mandos; Android expone un deslizador. |
En resumidas cuentas
Desactivar el swap no evita la E/S de disco bajo presión de memoria — reubica el thrashing desde las páginas anónimas hacia la caché de páginas y el texto del programa, lo que suele ser peor.
Replanteamiento
Una profundidad de swap sostenida es una señal de dimensionamiento, no un problema de ajuste. La solución es más RAM, no más swap.
Lo que añaden otros
Dos capas, cinco nombres la forma en la que todos convergieron
Capa uno · en RAM
La capa comprimida
- Windows Memory Compression — el formato
XPRESSsimple (sin Huffman), hacia un almacén alojado dentro del proceso System. - macOS compressor pager — WKdm; lo que permite a Apple vender configuraciones con menos RAM.
- Linux ZRAM / zswap — zstd, lzo o lz4, típicamente en torno a 3:1.
- Android ZRAM — siempre la primera línea de defensa, antes de tocar ningún almacenamiento.
- Windows Memory Compression — el formato
Capa dos · en almacenamiento
La capa persistente
- Windows
pagefile.sys; unswapfile.sysaparte mueve en una sola E/S todo el conjunto de trabajo de una aplicación suspendida. - Partición o archivo en Linux — funcionalmente equivalentes; el archivo cambia un mapeo del sistema de archivos por flexibilidad.
- Archivos de swap dinámicos de macOS en un volumen APFS VM dedicado, exigido por el propio esquema de arranque de Apple desde macOS 10.15.
- Android — los deslizadores de “RAM ampliada” varían según el fabricante: algunos añaden de verdad un archivo de swap en UFS, otros solo redimensionan la capa comprimida y no tocan el almacenamiento.
- Windows
Plataforma por plataforma mismo mecanismo, distinta exposición
| Tecnología | Backend | Hibernar | Comprimido |
|---|---|---|---|
| Pagefile de Windows | archivo en NTFS | imagen aparte | sí — XPRESS simple |
| Swapfile de Windows | archivo, solo apps modernas | no | sí — almacén por app |
| Partición de Linux | partición en bruto | sí | no — combínala con zswap |
| Swapfile de Linux | archivo en el sistema de archivos | sí, con desplazamiento | no — combínalo con zswap |
| Linux ZRAM | dispositivo de bloques en RAM | nunca | sí — de eso se trata |
| Swap dinámico de macOS | volumen VM de APFS | sí | sí — WKdm |
| Android ZRAM | dispositivo de bloques en RAM | nunca | sí — lz4 / zstd |
| RAM ampliada de Android | swapfile en UFS | no | primero vía ZRAM |
Dónde aguanta, dónde se resiente cuatro dimensiones
| Dimensión | Aguanta | Se resiente |
|---|---|---|
| Hibernación | una partición o un archivo reales pueden albergar la imagen | una capa comprimida en RAM se borra al arrancar — nunca puede sustituirla |
| Resistencia del flash | seis SSD de consumo sobrevivieron todos a su especificación, uno hasta 2.4 PB | el eMMC de gama baja y las escrituras sostenidas en servidores aún requieren cuidado |
| Afirmaciones de los fabricantes | sondear el sistema de archivos lo zanja — algunos sí añaden una capa real | “8 GB + 8 GB = 16 GB” es márketing, no aritmética |
| Mezclar capas | cada capa es sólida usada por separado | la ZRAM junto al swap en disco invita a la inversión de LRU |
Qué hace realmente el deslizador de Android zanjado sondeando, no con prosa
| Comportamiento | Qué cambia cuando mueves el deslizador | Coste |
|---|---|---|
| Solo el objetivo de ZRAM | No cambia ninguna partición ni área de swap — solo cuánta RAM se destina a la capa comprimida. | CPU |
| Swap real en almacenamiento | El espacio libre de la partición de datos baja exactamente en la cantidad solicitada, mientras que el conjunto de ZRAM queda igual. | escrituras en UFS |
| Dos nombres, una cosa | Las marcas comerciales de planificador y de optimización de memoria no son swap; solo lo es el deslizador de GB. | confusión |
| Por debajo de 4 GB de RAM | Genuinamente útil — sobreviven más apps en segundo plano en lugar de ser eliminadas y recargadas. | merece la pena |
| 12 GB de RAM en adelante | Rara vez se alcanza en el uso diario; los analistas informan de una animación más fluida con él desactivado. | fotogramas perdidos |
La cuestión de la resistencia, zanjada prosa a la izquierda · cifras a la derecha
El miedo a que el swap desgaste una unidad es la objeción más persistente, y está en buena medida respondida. En el experimento de larga duración más conocido se escribió en seis SSD de consumo hasta que murieron: el primer fallo llegó pasados los 700 TB, y el último superviviente absorbió 2.4 PB — todas las unidades superaron con creces su resistencia nominal. Los fabricantes son explícitos: una cifra nominal marca el final de la garantía, no el punto de fallo. La aritmética lo concreta: una unidad de 600 TBW en la que se escriben 100 GB todos los días dura más de dieciséis años, y casi nadie escribe tanto. Dos casos siguen mereciendo cuidado — el eMMC de gama baja de los móviles económicos y los servidores bajo una carga de escritura intensa y sostenida, que deberían especificarse por su índice de escritura diaria más que por su capacidad.
- 6 / 6unidades que superaron su especificación
- 2casos que aún requieren cuidado
El camino que recorre una página seis pasos, en orden
- 01Residenteen RAM
- 02Comprimiraún en RAM
- 03Volcara disco o UFS
- 04PresiónPSI informa del bloqueo
- 05Actuar prontoOOM en espacio de usuario
- 06Añadir RAMla solución real
Los mandos que realmente existen Linux · valores por defecto entre paréntesis
| Mando | Qué gobierna | Cuándo moverlo |
|---|---|---|
| vm.swappiness (60) | Con cuánta disposición se envía a swap la memoria anónima frente a recuperar la caché de páginas. | Súbelo por encima de 100 cuando el swap sea más rápido que el sistema de archivos, como con ZRAM. |
| vm.vfs_cache_pressure (100) | Con cuánta agresividad se recuperan las cachés de directorios e inodos frente a la caché de páginas. | Rara vez. Ponerlo a cero invita al asesino por falta de memoria. |
| vm.watermark_scale_factor (10) | Cuándo despierta la recuperación en segundo plano y cuánto libera una vez despierta. | Súbelo para mantener más memoria libre en una máquina propensa a picos repentinos de asignación. |
| ro.lmk.swap_free_low_percentage (10) | El porcentaje de swap libre por debajo del cual lmkd trata el sistema como falto de swap. | Solo con root, por dispositivo — el asesino dentro del núcleo se eliminó al llegar Linux a la 4.12. |
| ro.lmk.psi_complete_stall_ms (700) | Milisegundos de bloqueo PSI de memoria completo — todas las tareas paradas a la vez — que activa un cierre de nivel crítico. | Los umbrales más bajos (hasta 70ms) se usan en dispositivos con poca RAM; solo con root. |
Conclusión
Dos posturas, no cinco quién decide — el fabricante o tú
Windows · macOS
Déjalo en paz
- La compresión y el volcado están integrados y son automáticos; no hay nada que ajustar.
- Desactivar el archivo de paginación cuesta los volcados de fallo y baja el techo de compromiso — un mal cambio.
- En macOS, desactivar el swap implica debilitar las protecciones del sistema; la respuesta es más RAM.
- Vigila el indicador de presión, no la cifra de swap.
Linux · Android
Elige deliberadamente
- Decide primero la capa — con hibernación o sin ella — y luego dimensiónala.
- Los sistemas de archivos copy-on-write imponen restricciones reales a un archivo de swap; sigue su propio procedimiento.
- Combina la monitorización de presión con un asesino en espacio de usuario, o nada actuará hasta que la máquina se bloquee.
- En un móvil, lee el deslizador como un dial de apps en segundo plano con un coste en la tasa de fotogramas.
Recomendaciones por plataforma
- Windows — deja el pagefile gestionado por el sistema. Desactivarlo para recuperar unos pocos GB renuncia a los volcados de fallo y puede desestabilizar la máquina; el desgaste del SSD no es una consideración real.
- Linux — elige una capa, no las dos. ZRAM a la mitad de la RAM con zstd para escritorios; una partición o archivo reales al menos del tamaño de la RAM si hibernas. Nunca ejecutes ZRAM junto al swap en disco.
- Servidores Linux — combina PSI con un demonio OOM en espacio de usuario. Sin él, el asesino del núcleo solo se dispara cuando la máquina ya se ha bloqueado.
- Android — actívalo con 4 GB, desactívalo con 12 GB. El almacenamiento es órdenes de magnitud más lento que la RAM, y en un buque insignia el coste que se reporta son fotogramas perdidos.
La excepción, de nuevo comprueba tu propia distribución
No es una sola convención
“Comprimir primero, volcar después” describe a Windows, macOS, Android y a un escritorio Linux con ZRAM activado. No describe el valor por defecto actual y documentado de Red Hat Enterprise Linux, que es una partición o un archivo sin ningún paso de compresión. Un servidor construido con ese valor por defecto no tiene capa comprimida que resista antes de tocar el almacenamiento — algo que merece comprobarse antes de asumir que el patrón anterior se le aplica.
En qué queda
Hazte solo tres preguntas: ¿necesitas hibernación?, ¿estás mezclando capas? y ¿te está diciendo la profundidad del swap que compres RAM? Todo lo demás es detalle.