Cómo optimizar el espacio de almacenamiento en Linux

15 min de lectura - 22 de mayo de 2026

hero section cover
Tabla de contenidos
  • Cómo optimizar el espacio de almacenamiento en Linux
  • Descubrir qué está utilizando tu disco
  • Borrado de cachés de paquetes, registros y duplicados
  • Optimización a nivel del sistema de archivos
  • Automatización del mantenimiento del almacenamiento
  • Aprovechar cada gigabyte
Compartir

Técnicas prácticas para recuperar y optimizar el espacio en disco en servidores Linux, desde la limpieza de la caché de paquetes hasta el ajuste del sistema de archivos y el mantenimiento automatizado.

Cómo optimizar el espacio de almacenamiento en Linux

Durante años, la respuesta habitual a un disco lleno era sencilla: añadir más almacenamiento. El almacenamiento era barato. Ya no es así. Los precios de la memoria flash NAND se han disparado desde finales de 2025, impulsados por la demanda de infraestructura de IA que consume la capacidad de producción mundial. Los precios de los contratos de SSD para empresas subieron entre un 85 % y un 90 % solo en el primer trimestre de 2026, las unidades NVMe para consumidores han duplicado aproximadamente su precio de venta al público y no se espera que la nueva capacidad de producción de NAND entre en funcionamiento hasta 2027.

El resultado: cada gigabyte de tu servidor cuesta más que hace un año, lo que hace que optimizar lo que ya tienes sea una inversión mucho mejor que comprar más capacidad. En esta entrada se explica cómo averiguar qué está ocupando tu espacio en disco, limpiarlo y configurar tu sistema de archivos para utilizar el almacenamiento de forma más eficiente.


 

Descubrir qué está utilizando tu disco

Empieza con df -h para obtener una instantánea de todos los sistemas de archivos montados, incluyendo el tamaño total, el espacio utilizado y el porcentaje de uso. Cualquier partición por encima del 90 % requiere atención. Comprueba las particiones específicas individualmente si es necesario:

df -h /
df -h /boot

No pase por alto los inodos. Un sistema de archivos puede tener espacio libre pero no inodos disponibles, lo que provoca los mismos fallos. Compruébelo con df -i.

Si df muestra un 100 % de uso pero los números no cuadran, es probable que tengas archivos fantasma. Se trata de archivos que se han eliminado pero que siguen abiertos por un proceso en ejecución. El espacio no se recuperará hasta que el proceso libere el identificador del archivo. Encuéntralos con:

sudo lsof / | grep deleted

Una vez que sepa qué sistemas de archivos están bajo presión, profundice en los directorios con du o ncdu. Para comprobaciones rápidas o scripts, du es la herramienta adecuada:

du -h --max-depth=1 /var

Añade -x al escanear desde la raíz para permanecer en un único sistema de archivos y omitir montajes virtuales como /proc. Para la exploración interactiva en un servidor remoto, ncdu te ofrece una interfaz de texto navegable en la que puedes ordenar por tamaño y eliminar archivos directamente.

Característicaduncdu
InterfazSalida estática de la línea de comandosTUI interactiva con navegación mediante teclas de flecha
Ideal paraCreación de scripts y comprobaciones rápidasExploración manual en servidores remotos
OrdenaciónRequiere canalización a sortIntegrado (por tamaño, nombre, etc.)
Eliminación de archivosComando rm comandoIntegrado (pulsa d)

Borrado de cachés de paquetes, registros y duplicados

Hay tres áreas que suelen ocupar la mayor parte del espacio recuperable: las cachés de paquetes, los archivos de registro y los archivos grandes o duplicados.

Cachés de paquetes y dependencias huérfanas

Cada instalación o actualización deja archivos de paquetes almacenados en caché. Con el tiempo, estos se acumulan silenciosamente. Límpialos según tu distribución:

TareaDebian/Ubuntu (APT)Fedora/RHEL (DNF)Arch (Pacman)
Borrar cachésudo apt cleansudo dnf clean allsudo paccache -r
Eliminar archivos huérfanossudo apt autoremovesudo dnf autoremovepacman -Rs $(pacman -Qdtq)
Purgar configuraciones sobrantessudo apt autoremove --purgeGestionado por autoremoveN/A

Previsualiza primero los cambios con sudo apt autoremove --dry-run. Los kernels antiguos pueden ocupar 1,5 GB o más en los sistemas Ubuntu. Mantén siempre el kernel en ejecución y una copia de seguridad antes de eliminar las versiones anteriores.

Si utiliza Snap o Flatpak, estos también acumulan revisiones y archivos de ejecución:

sudo snap set system refresh.retain=2
flatpak uninstall --unused

Archivos de registro en /var/log

Los registros son los acaparadores de espacio en disco silenciosos más comunes. Busca primero los registros de gran tamaño:

du -xhd1 /var/log | sort -h
find /var/log -type f -size +100M

Para los registros de systemd, utiliza la herramienta vacuum integrada en lugar de eliminar los archivos manualmente:

sudo journalctl --vacuum-size=500M

Para establecer un límite permanente, edita /etc/systemd/journald.conf:

SystemMaxUse=500M
MaxRetentionSec=14day

Para los archivos de registro activos que un servicio mantiene abiertos, no utilices rm. El espacio no se liberará mientras el proceso mantenga el descriptor de archivo. En su lugar, trunca:

sudo truncate -s 0 /var/log/syslog

Archivos grandes y duplicados

Busca archivos de más de 500 MB en todo el sistema:

sudo find / -type f -size +500M -exec ls -lh {} +

Para los duplicados, rmlint utiliza comparaciones basadas en hash para detectar archivos duplicados, directorios vacíos y enlaces simbólicos rotos. Revisa cuidadosamente el resultado antes de eliminar nada, especialmente en servidores donde archivos idénticos pueden desempeñar funciones diferentes.

Optimización a nivel del sistema de archivos

Tras limpiar los archivos, puedes sacar más espacio útil del mismo hardware ajustando tu sistema de archivos.

Reducción del espacio reservado de ext4

Por defecto, ext4 reserva el 5 % del sistema de archivos para la raíz. En una partición de datos de 2 TB, eso supone 100 GB inactivos. En un servidor dedicado donde la partición de datos no es el sistema de archivos raíz, puede reducir esto de forma segura:

sudo tune2fs -m 1 /dev/sdXn

Esto establece la reserva en un 1 %, lo cual es suficiente para la mayoría de los casos de uso. Verifique el cambio con tune2fs -l /dev/sdXn.

Compresión transparente de Btrfs

Btrfs admite la compresión transparente de archivos, algo que ext4 y XFS no ofrecen. Monta con compress=zstd para comprimir los datos automáticamente al escribirlos. ZSTD ofrece un buen equilibrio entre velocidad y ratio. Para cargas de trabajo con archivos mixtos, compress-force=zstd puede ofrecer un ahorro adicional del 10-20 % al comprimir archivos que la heurística normalmente omitiría.

Para comprimir los datos existentes en un volumen Btrfs:

btrfs filesystem defragment -czstd /path/to/dir

Tenga cuidado con esto en volúmenes que tengan instantáneas o reflinks. La desfragmentación rompe las relaciones de «copia al escribir», lo que en realidad puede aumentar el uso del disco.

Enlaces de referencia para copias instantáneas

Tanto XFS como Btrfs admiten enlaces de referencia, que crean copias de archivos que comparten bloques físicos hasta que se modifica una de las copias. Esto resulta útil para clonar imágenes de disco de máquinas virtuales o capas de contenedores sin duplicar el consumo de almacenamiento:

cp --reflink=always source.img clone.img

Aprovisionamiento ligero de LVM

El aprovisionamiento ligero de LVM le permite asignar más espacio lógico del que tiene físicamente, consumiendo espacio real en disco solo a medida que se escriben los datos. Esto resulta valioso cuando se ejecutan múltiples máquinas virtuales o contenedores que necesitan cada uno su propio volumen lógico, pero que no los llenarán todos simultáneamente.

Para evitar que los grupos de aprovisionamiento ligero se agoten, habilite la extensión automática en /etc/lvm/lvm.conf configurando thin_pool_autoextend_threshold y thin_pool_autoextend_percent.

Automatización del mantenimiento del almacenamiento

Las limpiezas manuales funcionan una sola vez. Las automatizadas mantienen tus discos en buen estado desde ahora hasta la próxima vez que inicies sesión. Utiliza systemd temporizadores siempre cron siempre que sea posible. Registran la salida journalctl automáticamente, y Persistent=true se pone al día con las ejecuciones perdidas tras un reinicio.

HerramientaHerramientaFrecuencia
Rotación de registroslogrotateDiaria o semanal
Aspirado del diariojournalctl --vacuum-timeSemanal
Limpieza de la caché de paquetesapt clean / dnf clean allMensual
Eliminación de archivos temporalessystemd-tmpfilesDiario
Poda de Dockerdocker system pruneSemanal
Supervisión del uso del discoScript personalizado + temporizador de systemdCada 15-30 min

Docker merece una atención especial. Los registros de los contenedores pueden crecer sin ninguna advertencia visible. Limita el tamaño de los registros de forma global editando /etc/docker/daemon.json. Configura max-size y max-file en la log-opts clave para evitar que los contenedores individuales llenen el disco.

Para una supervisión proactiva, configura un sistema de alertas de dos niveles: una advertencia al 80 % de uso del disco y una alerta crítica al 90 %. Registra el uso del disco cada hora para poder seguir las tendencias de crecimiento y predecir cuándo una partición alcanzará su capacidad máxima:

0 * * * * df --output=source,size,used,pcent >> /var/log/disk_usage.csv

Una medida de seguridad más: monta /var, /tmpy /home en particiones separadas. Esto evita que los registros descontrolados o los datos de usuario consuman el sistema de archivos raíz y provoquen un fallo en todo el sistema.

Aprovechar cada gigabyte

Con el aumento de los precios del almacenamiento y sin que se espere un respiro hasta que la nueva producción de NAND entre en funcionamiento en 2027, optimizar lo que tienes no es solo una buena práctica. Supone un ahorro real de dinero. El enfoque es sencillo:

  • Audita el uso de tu disco con df, du, y ncdu antes de realizar cualquier cambio.
  • Borra las cachés de los paquetes, rota los registros y elimina los duplicados para recuperar espacio de inmediato.
  • Optimice su sistema de archivos. Reduzca los bloques reservados de ext4, habilite la compresión de Btrfs o utilice el aprovisionamiento dinámico de LVM para sacar más partido al mismo hardware.
  • Automatiza el mantenimiento con los temporizadores de systemd para que tus discos se mantengan limpios entre auditorías.
  • Supervise las tendencias de uso y configure alertas al 80 % y al 90 % para detectar problemas de forma temprana.

Si necesitas una infraestructura de servidores dedicados con almacenamiento NVMe de alto rendimiento, los servidores dedicados de FDC están diseñados para ello.

Blog

Destacados de la semana

Más artículos
Por qué es importante tener un VPS potente y sin contador

Por qué es importante tener un VPS potente y sin contador

¿Necesita un rendimiento fiable y tráfico ilimitado? Un potente VPS sin contador le ofrece la velocidad, escalabilidad y ancho de banda que necesita, sin preocuparse por los límites de uso.

3 min de lectura - 9 de mayo de 2025

Cómo optimizar el espacio de almacenamiento en Linux

15 min de lectura - 22 de mayo de 2026

Más artículos