Todos los productos
Search
Centro de documentos

Elastic Compute Service:Resolve full disk space issues on Linux instances

Última actualización: Sep 02, 2026

A medida que las aplicaciones y los servicios se ejecutan continuamente en una instancia Linux, los registros, la caché y los datos del negocio se acumulan con el tiempo y consumen gradualmente el espacio de almacenamiento disponible. Cuando el disco se llena, no es posible escribir nuevos datos, lo que provoca directamente interrupciones en el servicio o comportamientos anómalos.

Síntomas

Al crear archivos o ejecutar aplicaciones en una instancia Linux, aparece el mensaje de error No space left on device, lo cual indica que los recursos de almacenamiento están agotados.

Diagnóstico y soluciones

Importante

Antes de realizar cambios, create a manual snapshot para respaldar sus datos y evitar pérdidas accidentales que puedan afectar su negocio.

Escenario 1: Espacio en disco agotado

  1. Compruebe el uso del disco.

    Ejecute sudo df -h para consultar el uso del disco en cada punto de montaje. Si el valor de Use% es del 100%, el espacio correspondiente está lleno.

  2. Localice y limpie los archivos o directorios grandes que consumen espacio en disco.

    1. Desde el directorio raíz, ejecute sudo du -sh /* para investigar nivel por nivel y acotar rápidamente el alcance hasta encontrar el directorio que más espacio consume.

    2. Según la salida obtenida, localice el directorio con mayor uso y repita el comando sudo du -sh <directory name>/* sobre ese directorio para profundizar nivel por nivel e identificar los archivos grandes.

      Por ejemplo, ejecute sudo du -sh /mnt/* para consultar el espacio consumido por los archivos y subdirectorios dentro del directorio /mnt .

      A continuación se listan los objetos comunes que pueden limpiarse. Elimine los archivos innecesarios según sus requisitos reales de negocio.

      Tipo

      Ubicación común

      Descripción y recomendación

      Archivos de registro

      /var/log

      Registros de aplicaciones y del sistema. Puede limpiar los registros históricos archivados. Para los registros de systemd, utilice sudo journalctl --vacuum-size=200M para limitar el tamaño en lugar de usar directamente rm para eliminar registros que aún se están escribiendo.

      Archivos temporales

      /tmp, /var/tmp

      Datos temporales. Límpielos tras confirmar que ningún proceso los está utilizando.

      Caché de aplicaciones o registros de negocio

      Directorios de negocio personalizados

      Requiere evaluación según su negocio. Antes de limpiar, asegúrese de confirmar que los datos no son críticos para evitar eliminaciones accidentales.

  3. Si el espacio sigue siendo insuficiente después de la limpieza, scale out your disk.

Escenario 2: Recursos de inodos agotados

Cada archivo consume un inodo. Si su disco contiene muchos archivos pequeños, los inodos pueden agotarse incluso cuando aún queda espacio en disco disponible, lo que impide la creación de nuevos archivos.

  1. Compruebe el uso de inodos.

    Ejecute sudo df -i. Si el valor de IUse% alcanza el 100%, los recursos de inodos están agotados.

  2. Limpie los archivos o carpetas innecesarios.

    Utilice sudo du -sh --inodes <folder name>/* para consultar la cantidad de inodos utilizados por los archivos y subcarpetas en un directorio especificado. Si es necesario, navegue hacia el interior del directorio y use este comando de forma recursiva para localizar las áreas con alto uso de inodos.

    Por ejemplo, utilice sudo du -sh --inodes /mnt/* para comprobar la cantidad de inodos utilizados por los archivos y subdirectorios en el directorio /mnt .
  3. Si el recuento de inodos sigue siendo insuficiente después de la limpieza, scale out your disk.

Escenario 3: Los archivos eliminados siguen ocupando espacio

Incluso después de eliminar un archivo, el sistema no libera su espacio en disco si un proceso todavía lo está utilizando (es decir, mantiene un identificador de archivo abierto). El espacio solo se libera cuando el proceso finaliza o cierra explícitamente el archivo.

  1. Instale la herramienta lsof.

    Los archivos que han sido eliminados pero aún retienen espacio no pueden verse con df ni con du . Utilice la herramienta lsof para listarlos.

    Alibaba Cloud Linux, CentOS

    sudo yum install -y lsof

    Debian, Ubuntu

    sudo apt install -y lsof
  2. Consulte el espacio de almacenamiento retenido por los archivos eliminados.

    sudo lsof | grep delete | sort -k7 -rn | more

    La séptima columna en la salida muestra el tamaño del archivo en bytes. Sume estos valores para calcular el espacio total no liberado.

    tail      619544                        root    3r   REG    253,1   50000000    136507 /home/test_file (deleted)
    aliyun-se 347980                        root    7uW  REG    253,1          0    262160 /tmp/AliyunAssistClientSingleLock.lock (deleted)
    aliyun-se 347980 347997 aliyun-se       root    7uW  REG    253,1          0    262160 /tmp/AliyunAssistClientSingleLock.lock (deleted)
    aliyun-se 347980 347996 aliyun-se       root    7uW  REG    253,1          0    262160 /tmp/AliyunAssistClientSingleLock.lock (deleted)
    aliyun-se 347980 347995 aliyun-se       root    7uW  REG    253,1          0    262160 /tmp/AliyunAssistClientSingleLock.lock (deleted)
    aliyun-se 347980 347994 aliyun-se       root    7uW  REG    253,1          0    262160 /tmp/AliyunAssistClientSingleLock.lock (deleted)
    aliyun-se 347980 347983 aliyun-se       root    7uW  REG    253,1          0    262160 /tmp/AliyunAssistClientSingleLock.lock (deleted)
    aliyun-se 347980 347982 aliyun-se       root    7uW  REG    253,1          0    262160 /tmp/AliyunAssistClientSingleLock.lock (deleted)
    aliyun-se 347980 347981 aliyun-se       root    7uW  REG    253,1          0    262160 /tmp/AliyunAssistClientSingleLock.lock (deleted)
  3. Registre el nombre del proceso y el PID.

    Ejecute sudo lsof | grep delete y anote los campos COMMAND y PID para identificar el nombre del proceso y su ID.

  4. Reinicie o detenga el servicio correspondiente.

    Ejecute sudo ps -ef | grep <PID> para confirmar el propósito del proceso. Tras evaluar el impacto, reinicie o detenga el servicio.

    Importante

    Reiniciar o detener un servicio puede afectar su negocio. Evalúelo cuidadosamente y realice esta acción durante una ventana de mantenimiento adecuada.

Escenario 4: Punto de montaje superpuesto

Cuando se utiliza un directorio no vacío como punto de montaje para otro dispositivo, su contenido existente queda oculto. Sin embargo, los procesos que ya tienen abierto el directorio aún pueden escribir en el espacio subyacente. Este consumo de espacio "oculto" no puede observarse con el comando df y puede agotar inesperadamente el espacio en disco.

  1. Consulte la información sobre carpetas duplicadas.

    Ejecute sudo lsblk y revise la columna MOUNTPOINT en busca de nombres de directorio repetidos.

    sudo lsblk
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    vda    253:0    0   40G  0 disk 
    ├─vda1 253:1    0    2M  0 part 
    ├─vda2 253:2    0  200M  0 part /boot/efi
    └─vda3 253:3    0 39.8G  0 part /
    vdb    253:16   0   40G  0 disk 
    └─vdb1 253:17   0   40G  0 part /mnt
    vdc    253:32   0   40G  0 disk 
    └─vdc1 253:33   0   40G  0 part /mnt

    En este ejemplo, tanto la partición vdb1 como la vdc1 están montadas en /mnt, lo que indica un riesgo de superposición de puntos de montaje.

  2. Desmonte el sistema de archivos.

    Importante

    Desmontar un sistema de archivos puede interrumpir los servicios que dependen de esa ruta. Evalúe el riesgo y elija un momento adecuado para realizar esta operación.

    Puede obtener el <duplicate mount directory> de the previous step.

    sudo umount <duplicate mount directory>
    En este ejemplo, /mnt es el directorio de montaje duplicado. Al ejecutar sudo umount /mnt se desmonta el dispositivo montado más recientemente, vdc1 .
  3. Identifique el nombre del dispositivo del punto de montaje superpuesto.

    Ejecute sudo df -h para localizar el nombre del dispositivo asociado con el punto de montaje activo actualmente.

    sudo df -h
    Filesystem      Size  Used Avail Use% Mounted on
    devtmpfs        3.7G     0  3.7G   0% /dev
    tmpfs           3.7G     0  3.7G   0% /dev/shm
    tmpfs           3.7G  524K  3.7G   1% /run
    tmpfs           3.7G     0  3.7G   0% /sys/fs/cgroup
    /dev/vda3        40G  4.5G   33G  12% /
    /dev/vda2       200M  5.8M  194M   3% /boot/efi
    /dev/vdb1        40G   40G     0  100% /mnt
    tmpfs           747M     0  747M   0% /run/user/0

    En este ejemplo, la partición montada actualmente en /mnt es vdb1. Por lo tanto, el nombre del dispositivo del punto de montaje superpuesto es vdb1.

  4. Resuelva el problema de espacio en disco lleno.

    1. Limpie los archivos o carpetas innecesarios en el espacio superpuesto.

      En este ejemplo, limpie el directorio /mnt montado por vdb1 .
    2. Si el espacio sigue siendo insuficiente después de la limpieza, scale out your disk y móntelo en un directorio vacío diferente.

      En este ejemplo, el dispositivo objetivo a escalar es vdb1 .
Importante

No monte múltiples dispositivos en el mismo directorio.

Montar varios dispositivos en el mismo directorio oculta el espacio del primer dispositivo montado y puede provocar que los datos se escriban en el dispositivo incorrecto. Monte siempre dispositivos diferentes en directorios vacíos separados.

Escenario 5: Los archivos relacionados con Docker consumen mucho espacio

Docker genera muchas imágenes intermedias, contenedores detenidos y cachés de compilación durante su funcionamiento. Con el tiempo, estos elementos se acumulan y consumen espacio en disco.

  1. Compruebe el uso de espacio en disco de Docker.

    Ejecute sudo df -h. Si el valor de Use% para un Filesystem de tipo overlay alcanza el 100%, el almacenamiento de Docker está lleno.

  2. Evalúe el uso de recursos de Docker.

    Ejecute sudo docker system df y examine los campos Size y RECLAIMABLE para comprender el consumo de espacio.

    sudo docker system df
    TYPE            TOTAL      ACTIVE     SIZE       RECLAIMABLE
    Images          21         9          13.94GB    10.66GB(76%)
    Containers      9          5          30.09MB    0B(0%)
    Local volumes   6          6          259.9MB    0B(0%)
    Build Cache     0          0          0B         0B

    En el ejemplo, las imágenes de Docker ocupan 13.94 GB, de los cuales 10.66 GB son recuperables; se recomienda priorizar la limpieza de las imágenes no utilizadas.

  3. Limpie los archivos innecesarios.

    Si no es posible limpiar los archivos de Docker, siga los pasos indicados en Scenario 1: Disk space is exhausted .
    • Elimine todos los contenedores detenidos: ejecute sudo docker container prune.

    • Elimine todas las imágenes colgantes (imágenes sin etiqueta): ejecute sudo docker image prune.

    • Elimine la caché de compilación no utilizada: ejecute sudo docker builder prune.

Escenario 6: Límite de inotify watches alcanzado

Al ejecutar comandos como sudo tail -f, podría aparecer el error tail: cannot watch '...': No space left on device. Esto no significa que el espacio en disco esté lleno, sino que el sistema ha alcanzado el número máximo de inotify watches utilizados para monitorear cambios en archivos y directorios. Debe aumentar este límite.

  1. Compruebe el límite actual de inotify watches.

    Ejecute sudo cat /proc/sys/fs/inotify/max_user_watches para consultar el límite actual de inotify watches.

  2. Aumente el límite de inotify watches.

    Elevar este límite incrementa el uso de memoria. Evalúelo cuidadosamente antes de realizar el cambio. El <new limit> generalmente no debe exceder 524288.

    sudo sh -c "echo fs.inotify.max_user_watches=<new limit> >> /etc/sysctl.conf"
  3. Cargue la nueva configuración.

    Ejecute sudo sysctl --system para aplicar la configuración actualizada.

  4. Verifique el resultado.

    Ejecute nuevamente sudo cat /proc/sys/fs/inotify/max_user_watches para confirmar que el límite de inotify watches se haya actualizado correctamente.

Referencias

  • Para almacenar grandes cantidades de archivos estáticos como imágenes, videos o archivadores, utilice Object Storage Service (OSS).

  • Para compartir archivos con alto rendimiento y alta concurrencia, almacene los archivos mediante File Storage NAS.

  • Para la recopilación y análisis de registros a gran escala, almacene los registros en Simple Log Service (SLS) para simplificar las consultas y reducir el uso de almacenamiento local.