"예약된 블록 비율"을 변경하는 방법

"예약된 블록 비율"을 변경하는 방법

지금 커널에 여유 디스크 공간을 돌려주도록 지시하는 방법이 있습니까? /proc/에 뭔가를 쓰는 것과 같은가요? ext4와 함께 Ubuntu 11.10을 사용합니다.

이것은 아마도오래된매우 반복되는 주제입니다. 0 공간에 도달한 후 편집자가 내가 열어 놓은 소스 코드 파일을 저장할 수 없을 때만 알아차렸습니다. 이제 폴더 목록의 크기가 0바이트가 되어 끔찍하게도 나는 계속 삭제 작업을 진행했습니다.

사용자와 루트 모두에서 100MB의 대용량 파일을 삭제하고 일부 하드링크도 수행했습니다.

방금 전에는 apt-get clean/var/cache/apt/archives에 900MB가 넘었지만 지금은 108KB만 있습니다.

# du
108 /var/cache/apt/archives

한 시간이 지난 후에도 여전히 여유 공간이 없고 편집기에서 열린 소중한 파일을 저장할 수 없지만 아래 차이점을 확인하세요.

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

어떤 제안이 있으십니까? 일부 서비스/프로세스를 종료했지만 누가 디스크 공간을 적극적으로 먹고 있는지 확인하는 방법을 모르겠습니다.

더 많은 정보

# 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

답변1

lsof열려 있는 파일이 있는지 확인 하십시오 . 공간은 닫힐 때까지 해제되지 않습니다.

sudo /usr/sbin/lsof | grep deleted

삭제된 파일이 아직 열려 있는지 알려줍니다.

답변2

lsof삭제되었지만 열려 있고 여전히 공간을 차지하고 있는 파일을 찾는 데 사용합니다 .

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

/proc/<pid>/fd/파일 핸들에 해당하는 항목을 찾으십시오 .

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

이제 cat /dev/nullfd로 들어갑니다.

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

inode는 여전히 열려 있지만 이제 길이는 0입니다.

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

답변3

dfroot다음 으로 실행되는 경우에도 예약된 공간은 표시되지 않습니다 root.

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

"예약된 블록 비율"을 변경하는 방법

  1. 예약된 공간을 4%로 줄입니다.

    # tune2fs -m4 /dev/sda4

df -h이제 45M이 무료로 표시되었습니다.

  1. 내 파일을 빠르게 저장했습니다.
  2. 다시 5%로 올려주세요

    # tune2fs -m5 /dev/sda4

답변4

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

설명: 삭제된 파일만 추출하는
Grep 출력입니다. lsofSed는 각 줄에서 프로세스 ID와 파일 설명자 ID를 추출하고 형식으로 문자열을 생성합니다 {pid}/fd/{fid}. 루프를 실행하고 각 파일에 아무것도 출력하지 않고 비어 있도록 설정합니다.

관련 정보