Como alterar a “porcentagem de bloqueio reservado”

Como alterar a “porcentagem de bloqueio reservado”

Existe uma maneira de dizer ao kernel para devolver o espaço livre em disco agora? Como escrever algo em /proc/ ? Usando Ubuntu 11.10 com ext4.

Este é provavelmente umvelhoe tema muito repetido. Depois de atingir 0 espaço, notei apenas que meu editor não conseguiu salvar os arquivos de código-fonte que abri, que para meu horror agora têm tamanho de 0 byte na listagem de pastas, comecei uma farra de exclusão.

Excluí centenas de MB de arquivos grandes, tanto do usuário quanto do root, e fiz alguns links físicos também.

Pouco antes de mim apt-get cleanhavia mais de 900 MB em /var/cache/apt/archives, agora há apenas 108 KB:

# du
108 /var/cache/apt/archives

Uma hora depois ainda não há espaço livre e não consigo salvar meus preciosos arquivos abertos no editor, mas observe a disparidade abaixo:

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

Alguma sugestão? Desliguei alguns serviços/processos, mas não sei como verificar quem pode estar consumindo ativamente espaço em disco.

Mais informações

# 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

Responder1

Verifique com lsofpara ver se há arquivos mantidos abertos. O espaço não será liberado até que sejam fechados.

sudo /usr/sbin/lsof | grep deleted

informará quais arquivos excluídos ainda estão abertos.

Responder2

Use lsofpara localizar o arquivo excluído, mas aberto, que ainda consome espaço:

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

Encontre a entrada /proc/<pid>/fd/que corresponde ao identificador de arquivo:

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

Agora, apenas cat /dev/nullno fd:

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

Observe que o inode ainda está aberto, mas agora tem comprimento 0

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

Responder3

dfnão mostrará o espaço reservado para root(mesmo quando executado como root):

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

Como alterar a “porcentagem de bloqueio reservado”

  1. Reduza o espaço reservado para 4%

    # tune2fs -m4 /dev/sda4

df -hagora mostrou 45M grátis.

  1. Salvei meus arquivos rapidamente
  2. Coloque de volta para 5%

    # tune2fs -m5 /dev/sda4

Responder4

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

Explicação: Saída
do Grep lsofpara extrair apenas arquivos excluídos. Sed extraia o ID do processo e o ID do descritor de arquivo de cada linha e crie uma string no formato {pid}/fd/{fid}. Enquanto faz um loop e não gera nada para cada arquivo, configurando-os como vazios.

informação relacionada