Cómo cambiar el "porcentaje de bloqueo reservado"

Cómo cambiar el "porcentaje de bloqueo reservado"

¿Hay alguna manera de decirle al kernel que devuelva el espacio libre en el disco ahora? ¿Te gusta escribir algo en /proc/? Usando Ubuntu 11.10 con ext4.

Probablemente esto sea unviejoy tema muy repetido. Después de alcanzar el espacio 0, solo noté que mi editor no podía guardar los archivos de código fuente que tenía abiertos, que para mi horror ahora tienen un tamaño de 0 bytes en la lista de carpetas, y comencé a eliminarlos.

Eliminé cientos de MB de archivos grandes tanto del usuario como del root, y también hice algunos enlaces duros.

Justo antes de hacerlo apt-get cleanhabía más de 900 MB en /var/cache/apt/archives, ahora solo hay 108 KB:

# du
108 /var/cache/apt/archives

Una hora más tarde, todavía no tengo espacio libre y no puedo guardar mis preciados archivos abiertos en el editor, pero observe la disparidad a continuación:

# sync; df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda4             13915072  13304004         0 100% /

¿Alguna sugerencia? Cerré algunos servicios/procesos pero no estoy seguro de cómo comprobar quién podría estar consumiendo activamente espacio en el disco.

Más información

# dumpe2fs  /dev/sda4
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              884736
Block count:              3534300
Reserved block count:     176715
Free blocks:              422679
Free inodes:              520239
First block:              0
Block size:               4096
Fragment size:            4096

Respuesta1

Consulte con lsofpara ver si hay archivos abiertos. No se liberará espacio hasta que se cierren.

sudo /usr/sbin/lsof | grep deleted

le dirá qué archivos eliminados aún se mantienen abiertos.

Respuesta2

Úselo lsofpara encontrar el archivo eliminado, pero abierto, que aún consume espacio:

lsof | grep deleted | grep etilqs_1IlrBRwsveCCxId
chrome     3446       user  128u      REG              253,2              16400       2364626 /var/tmp/etilqs_1IlrBRwsveCCxId (deleted)  

Busque la entrada /proc/<pid>/fd/que corresponda al identificador de archivo:

ls -l /proc/3446/fd/etilqs_1IlrBRwsveCCxId
lrwx------. 1 user unix 64 Feb 11 15:31 128 -> /var/tmp/etilqs_1IlrBRwsveCCxId (deleted)

Ahora, justo cat /dev/nullen el fd:

cat /dev/null > /proc/3446/fd/128

Tenga en cuenta que el inodo todavía está abierto, pero ahora tiene una longitud de 0

chrome     3446       user  128u      REG              253,2         0    2364626 /var/tmp/etilqs_1IlrBRwsveCCxId (deleted)

Respuesta3

dfno mostrará el espacio reservado para root(incluso cuando se ejecute como root):

# df -h
Filesystem            Size  Used Avail Use% Mounted on
...
/dev/optvol           625G  607G     0 100% /opt
...

Cómo cambiar el "porcentaje de bloqueo reservado"

  1. Reducir el espacio reservado al 4%

    # tune2fs -m4 /dev/sda4

df -hahora mostró 45M gratis.

  1. Guardé mis archivos rápidamente
  2. Vuelve a ponerlo al 5%

    # tune2fs -m5 /dev/sda4

Respuesta4

sudo lsof | grep "(deleted)$" | sed -re 's/^\S+\s+(\S+)\s+\S+\s+([0-9]+).*/\1\/fd\/\2/' | while read file; do sudo bash -c ": > /proc/$file"; done

Explicación: Salida
de Grep lsofpara extraer solo archivos eliminados. Sed extrae la identificación del proceso y la identificación del descriptor de archivo de cada línea y crea una cadena en formato {pid}/fd/{fid}. Mientras realiza un bucle y no envía nada a cada archivo, configurándolos como vacíos.

información relacionada