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

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

지금 커널에 여유 디스크 공간을 돌려주도록 지시하는 방법이 있습니까? /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

df예약된 공간은 표시되지 않습니다 root(실행 중인 경우에도 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 lsof출력은 삭제된 파일만 추출합니다. sed는 각 줄에서 프로세스 ID와 파일 설명자 ID를 추출하고 형식의 문자열을 생성합니다 {pid}/fd/{fid}. while 루프를 실행하고 각 파일에 아무것도 출력하지 않고 공백으로 설정합니다.

관련 정보