Cómo configurar el swappiness en Linux y optimizar la SWAP

Última actualización: enero 28, 2026
Autor: Isaac
  • El parámetro swappiness controla el equilibrio entre el uso de RAM y SWAP, con valores de 0 a 100 (por defecto 60).
  • Ajustar swappiness y vfs_cache_pressure permite reducir accesos a disco, mejorar rendimiento y alargar la vida de los SSD.
  • Los cambios pueden aplicarse de forma temporal con sysctl y dejarse permanentes en /etc/sysctl.conf o /etc/sysctl.d/.
  • Herramientas como free y top ayudan a analizar el uso real de SWAP y a validar que los ajustes realizados son adecuados.

Configurar swappiness en Linux

Si usas Linux a diario y alguna vez has notado que el sistema se vuelve más lento cuando abres muchas aplicaciones, es muy posible que tenga que ver con cómo se está usando la memoria SWAP y el parámetro swappiness. Ajustar este comportamiento puede marcar la diferencia entre un escritorio fluido y uno que se arrastra, sobre todo en equipos con pocos recursos o servidores muy cargados.

En este artículo vamos a ver de forma detallada qué es la SWAP, cómo funciona la relación entre RAM, SWAP y swappiness, qué valores suelen venir por defecto y cómo cambiarlos paso a paso, tanto de forma temporal como permanente. Además, veremos parámetros relacionados como vfs_cache_pressure y cómo analizar el uso de SWAP con herramientas como free y top, para que puedas afinar el rendimiento de tu sistema con criterio y sin ir a ciegas.

Qué es la SWAP y por qué sigue siendo importante en Linux

En sistemas GNU/Linux, la SWAP es un espacio de intercambio ubicado normalmente en disco (partición o archivo) que se utiliza cuando la memoria RAM ya no es suficiente o cuando el kernel decide mover páginas de memoria poco usadas para liberar RAM. Aunque hoy en día muchos equipos tienen 8, 16 o incluso 32 GB de RAM, la SWAP sigue configurándose casi siempre durante la instalación.

Desde el punto de vista del sistema, la SWAP puede ser una partición con su propio tipo de sistema de ficheros “swap”, o bien un archivo especial dentro de una partición existente. Incluso existen técnicas más avanzadas donde parte de la RAM se reserva como área de intercambio para usos muy concretos, pero en entornos de usuario y servidor lo habitual es partición o archivo en disco.

El problema es que el disco —incluso un SSD rápido— es mucho más lento que la memoria RAM. Cada vez que el kernel se ve obligado a leer o escribir en SWAP, la latencia aumenta y el sistema puede quedarse “pensando” unos instantes, algo muy evidente al cambiar entre aplicaciones pesadas o al compilar, virtualizar o editar vídeo.

Por eso, aunque la SWAP ayuda a evitar errores por falta de memoria (OOM, Out Of Memory) y a soportar picos de carga, un uso excesivo de la SWAP penaliza el rendimiento. Aquí es donde entra en juego el parámetro swappiness, que controla con qué facilidad el kernel decide empezar a usar ese espacio de intercambio.

Funcionamiento de la memoria swap y RAM en Linux

Qué es el swappiness y cómo funciona

El swappiness es un parámetro del kernel Linux que ajusta el equilibrio entre el uso de la memoria RAM física y el uso de la memoria de intercambio (SWAP). Se representa como un valor entero entre 0 y 100 y determina cuán “agresivo” será el sistema a la hora de volcar páginas de memoria a la SWAP.

En la mayoría de distribuciones, el valor por defecto suele ser 60. Esto significa que el kernel empezará a mover datos a la SWAP cuando quede aproximadamente un 40% de RAM libre. En la práctica, implica que el sistema comienza a usar la SWAP relativamente pronto, incluso teniendo todavía buena parte de la memoria física disponible.

Conviene entender bien la escala: un valor de swappiness cercano a 100 indica que el kernel usará la SWAP con mucha frecuencia, mientras que un valor bajo, por ejemplo 10, hace que prácticamente se agote la RAM antes de recurrir a la SWAP. El valor mínimo efectivo suele ser 1; en muchos sistemas, establecerlo a 0 equivale a desactivar la SWAP casi por completo, algo que puede ser arriesgado en servidores con cargas variables.

  ¿Que se puede escribir con la letra E?

Algunos autores describen el valor 60 como un reparto aproximado de 40% RAM / 60% SWAP en cuanto a prioridad de uso, y un valor 10 como 90% RAM / 10% SWAP. Aunque no es una proporción matemática exacta, es una forma cómoda de visualizar cuándo se va a empezar a usar la SWAP y hasta qué punto se quiere apurar la memoria física antes de descargar páginas al disco.

En entornos con poca RAM (por ejemplo, servidores VPS de 1 GB o equipos antiguos), un swappiness más alto puede ayudar a evitar que procesos se queden sin memoria de forma brusca. Por el contrario, en equipos de escritorio con 8 GB, 16 GB o más, suele interesar un swappiness bajo para que el sistema aproveche bien la RAM antes de degradar el rendimiento con accesos a disco.

Parámetro swappiness en sistemas Linux

Comprobar el valor actual de swappiness

Como casi todo en Linux, el valor de swappiness está expuesto a través de un archivo virtual en /proc. Para consultarlo basta con abrir una terminal (por ejemplo con Ctrl + Alt + T) y ejecutar:

cat /proc/sys/vm/swappiness

El comando nos devolverá un número entero, que en la mayoría de casos será 60. Este es el punto de partida para decidir si nos interesa cambiarlo. Si tienes mucha RAM y ves que el sistema empieza a usar SWAP sin motivo aparente, seguramente te interese reducir este valor.

Algunos usuarios han hecho pruebas en distintos equipos y han observado que pasar de 60 a valores como 10, 20 o 30 puede suponer una pequeña mejora de rendimiento, mientras que en otros casos apenas se nota diferencia o incluso empeora ligeramente al ser demasiado agresivo dejando todo en RAM. Es un ajuste que conviene probar con calma, no hay una cifra universal que valga para todos.

Una buena estrategia es bajar desde 60 a valores intermedios, como 40, 30 o 20, usar el sistema durante un tiempo de forma exigente (abriendo aplicaciones pesadas, navegadores con muchas pestañas, editores de imagen como GIMP, máquinas virtuales, etc.) y valorar si la experiencia mejora, empeora o se mantiene igual.

Modificar el swappiness de forma temporal

Antes de tocar nada de forma permanente, lo más sensato es probar cambios temporales. Así, si el resultado no te convence, bastará reiniciar el equipo para volver al valor anterior sin complicaciones.

Existen varios métodos para cambiar el swappiness en caliente. Uno de los más sencillos es utilizar sysctl desde la terminal con privilegios de administrador:

sudo sysctl vm.swappiness=10

Con este comando el valor pasa a ser 10 de forma inmediata, sin necesidad de reiniciar. Puedes comprobarlo de nuevo con cat /proc/sys/vm/swappiness. Eso sí, como se trata de un ajuste temporal, en el siguiente arranque del sistema el valor volverá al predeterminado (normalmente 60) salvo que lo hagas persistente.

Otro método equivalente consiste en escribir directamente en el archivo virtual de /proc, por ejemplo:

echo 10 > /proc/sys/vm/swappiness

O, si prefieres editarlo con un editor de texto en modo consola, se puede abrir así:

sudo nano /proc/sys/vm/swappiness

Dentro del archivo verás simplemente un número, por ejemplo 60. Basta con sustituirlo por el valor deseado, por ejemplo 10, guardar y salir de nano. El efecto será el mismo: se aplicará el nuevo valor hasta el siguiente reinicio.

Ajustar el uso de memoria virtual en Linux

Hacer persistente el cambio de swappiness

Una vez que hayas encontrado un valor que te funciona bien tras varias pruebas, el siguiente paso lógico es dejarlo configurado de manera permanente, de forma que se aplique automáticamente en cada arranque del sistema.

La forma clásica en muchas distribuciones es editar el archivo /etc/sysctl.conf, que se utiliza para definir parámetros del kernel persistentes. Para ello, desde la terminal ejecuta:

  ¿Qué es el glutamato y dónde se encuentra?

sudo nano /etc/sysctl.conf

Al final del archivo puedes añadir una línea como esta, ajustando el valor al que prefieras:

vm.swappiness=10

Guarda los cambios (en nano, normalmente Ctrl + O para guardar y Ctrl + X para salir) y, si quieres que se apliquen sin reiniciar, puedes ejecutar:

sudo sysctl -p

Tras hacer esto, cada vez que el sistema arranque se establecerá vm.swappiness=10 (o el valor que hayas elegido), sin necesidad de repetir el comando manualmente. En muchas guías también se recomienda, sobre todo en algunas distribuciones modernas, crear un archivo específico dentro de /etc/sysctl.d/:

sudo nano /etc/sysctl.d/99-swappiness.conf

Y dentro, añadir la línea:

vm.swappiness=10

Esta aproximación es más modular y facilita gestionar varios parámetros del kernel por separado. El efecto es el mismo: al reiniciar el sistema, el valor de swappiness será el indicado, algo que podrás verificar de nuevo con:

cat /proc/sys/vm/swappiness

Elegir el mejor valor de swappiness según tu caso

No existe un valor mágico que valga para todo el mundo, pero sí hay recomendaciones prácticas según el tipo de equipo y uso. La idea general es minimizar el uso innecesario de SWAP sin llegar a comprometer la estabilidad del sistema.

En equipos de escritorio modernos con más de 4 GB de RAM, y especialmente si tienes un SSD, suele recomendarse bajar el swappiness a 10 o 20. Esto hace que la partición o archivo de intercambio apenas se use, reduciendo tanto las ralentizaciones como las escrituras en disco, lo que a la larga puede ayudar a alargar la vida útil del SSD.

En portátiles o sobremesas con 2-4 GB de RAM, bajar de 60 a valores intermedios como 30 o 40 puede ser una buena idea. Así sigues protegiéndote frente a picos de consumo de memoria, pero retrasas el uso agresivo de la SWAP, manteniendo el sistema más fluido en tareas del día a día.

En servidores con poca memoria (por ejemplo, un VPS de 1 GB de RAM) o servicios críticos donde no quieres que un proceso se quede sin memoria de repente, a veces se prefiere no ir tan bajo y mantener valores en torno a 30-60, o incluso algo más altos según la carga. Aquí la prioridad es la estabilidad y evitar errores OOM, aunque cueste algo de rendimiento en momentos puntuales.

En cualquier caso, lo más sensato es cambiar el valor de forma gradual: prueba con 10, observa cómo responde el sistema abriendo aplicaciones pesadas (como GIMP, editores de vídeo, máquinas virtuales o grandes hojas de cálculo) y, si notas tirones o comportamientos extraños, sube a 20, luego a 30, etc., hasta que encuentres el punto en el que tu equipo se sienta más ágil sin comprometer la estabilidad.

vfs_cache_pressure: afinando la caché de sistema de ficheros

Además de swappiness, el kernel dispone de otros parámetros que influyen indirectamente en el uso de la memoria y la SWAP. Uno muy interesante es vm.vfs_cache_pressure, que controla lo agresivo que es Linux a la hora de liberar la caché del VFS (Virtual File System).

El VFS es una capa del kernel que se encarga de abstraer los distintos sistemas de archivos (ext4, XFS, etc.) y de gestionar el acceso a ficheros. Para acelerar operaciones de lectura y escritura, Linux guarda en RAM una caché de estructuras de directorios e inodos, de modo que no tenga que ir constantemente al disco para resolver rutas.

El parámetro vm.vfs_cache_pressure determina cuándo se limpia esa caché para liberar memoria. Su valor por defecto es 100, y se puede ajustar en un rango bastante amplio, normalmente entre 0 y 1000. Un valor más alto hace que el sistema sea más agresivo borrando la caché, mientras que un valor más bajo la mantiene en memoria durante más tiempo.

Por ejemplo, si configuramos vm.vfs_cache_pressure=50, el kernel tardará más en liberar la caché de VFS. Esto puede ser muy útil en servidores que trabajan con muchos archivos o con CMS como WordPress, ya que mantener más metadatos en RAM reduce la carga de disco y acelera accesos repetitivos.

  ¿Qué es la multiplicación para niños de segundo de primaria?

En el extremo opuesto, un valor como vm.vfs_cache_pressure=200 o incluso más alto hará que esa caché se limpie con rapidez. Esto libera memoria RAM y SWAP para otros procesos, lo cual puede ser interesante en servidores que van muy justos de memoria y donde es preferible sacrificar algo de rendimiento en disco a cambio de tener más RAM disponible para aplicaciones críticas.

En servidores de bases de datos o sistemas con cargas muy específicas de I/O, algunos administradores llegan a utilizar valores tan bajos como 10 para vm.vfs_cache_pressure, de modo que se aprovecha al máximo la caché del VFS y se minimizan las lecturas en disco, siempre equilibrándolo con el swappiness y el tamaño de la RAM disponible.

Para configurar este parámetro de manera persistente, se puede usar un comando como:

echo 'vm.vfs_cache_pressure=50' | sudo tee -a /etc/sysctl.conf

Después, conviene aplicar los cambios con:

sudo sysctl -p

De nuevo, es un parámetro avanzado que conviene ajustar con cuidado: un valor inadecuado puede mejorar mucho el rendimiento o todo lo contrario, dependiendo de la carga real del sistema.

Ver y analizar el uso de SWAP en Linux

Para poder valorar si tus cambios en swappiness y otros parámetros tienen sentido, es fundamental medir cómo se está utilizando la SWAP. Linux ofrece varias herramientas sencillas para ello, entre las que destacan free y top.

El comando free permite ver rápidamente el uso de la memoria física y de la SWAP. Una forma habitual de invocarlo es:

free -m

En la salida verás una línea similar a:

Swap: 1998 56 1942

Estos valores están en megabytes (gracias a la opción -m): el tamaño total de la SWAP, lo que está en uso y lo que queda libre. Si, tras ajustar el swappiness, observas que el uso de SWAP se mantiene bajo en condiciones normales, es una buena señal de que el sistema está aprovechando mejor la RAM.

Si quieres ir un paso más allá y saber qué procesos están tirando de SWAP, puedes apoyarte en top. Una vez dentro de top, es posible mostrar una columna con la cantidad de memoria de intercambio usada por cada proceso. Para hacerlo:

1) Ejecuta top en la terminal.
2) Pulsa la tecla O (o mayúscula).
3) Pulsa la tecla p (p minúscula).
4) Pulsa Enter.

Verás que aparece una columna llamada SWAP, que indica la cantidad de memoria de intercambio consumida por cada proceso. Esta columna suele calcularse como la diferencia entre las columnas VIRT (memoria virtual total) y RES (memoria residente en RAM), lo que te da una idea de qué aplicaciones están empujando más datos hacia la SWAP.

Con esta información puedes tomar decisiones más informadas: si ves que cierta aplicación siempre dispara el uso de SWAP, puede que te interese aumentar la RAM, ajustar servicios, limitar procesos o incluso replantear el valor de swappiness para tu caso concreto.

Más allá de estas herramientas básicas, existen otras como vmstat, htop o monitores gráficos integrados en muchos entornos de escritorio, pero la lógica siempre es la misma: observar cuánta SWAP se usa, en qué momentos y por culpa de qué procesos.

Entender bien cómo se relacionan swappiness, vfs_cache_pressure, RAM disponible, tipo de disco (HDD o SSD) y carga de trabajo te permitirá afinar el comportamiento de la memoria de tu sistema Linux. Ajustando con cuidado estos parámetros podrás conseguir un escritorio más ágil en equipos modestos, servidores que aprovechen mejor la RAM sin castigar los discos y, en general, una sensación de fluidez mucho más acorde con el hardware que tienes entre manos.

Artículo relacionado:
¿Qué es el comando free?