다음 명령을 실행하십시오.
$ df -h
다음과 같은 출력을 제공합니다.
Filesystem Size Used Avail Use% Mounted on
/dev/md2 91G 85G 1.2G 99% /home
즉, 총 91GiB 중 85GiB만 사용되어 6GiB Avail
(91 - 85 = 6)가 남게 됩니다.
왜 Avail
1.2GiB만 필요합니까?
이 질문은 다음과 같은 것이 아니라 Used - Size
출력의 및 열 사이의 모순에 대해 명시적으로 설명합니다.Avail
df
df
du
이 관련 질문.
내 경우에는 파일 시스템에서 삭제된 파일이 아직 사용 중이지는 않았다.
답변1
기본적으로 ext2, ext3 및 ext4 파일 시스템은 루트 사용자를 위해 용량의 5%를 예약합니다. 이렇게 하면 조각화가 줄어들고 루트 사용자나 루트 소유 데몬이 중요한 작업을 수행할 때 디스크 공간이 부족해질 가능성이 줄어듭니다. 이 예약 이유에 대한 자세한 내용은 다음 질문에 대한 답변에서 확인할 수 있습니다.이 관련 질문.
예약 규모를 확인할 수 있습니다.tune2fs
주문하다:
tune2fs -l /dev/md2 | grep "Reserved block count:"
-m
예약 비율은 다음 명령의 옵션을 사용하여 변경할 수 있습니다 tune2fs
.
tune2fs -m 0 /dev/md2
-r
다음 명령의 옵션을 사용하여 유지되는 예약된 블록 수를 변경할 수 있습니다 tune2fs
.
tune2fs -r 0 /dev/md2
예약된 공간은 운영 체제에 독립적인 정적 컨텐츠가 있는 대규모 파일 시스템에서는 가장 유용하지 않습니다. 이러한 파일 시스템의 경우 보존 기간을 0으로 줄이는 것이 합리적입니다. 파일 시스템은 /
, /root
, /var
및 디렉터리가 포함된 시스템을 포함하여 기본 5% 보존 상태로 유지하는 것이 가장 좋으며 /tmp
데몬 및 기타 운영 체제 서비스에서 런타임에 임시 파일이나 로그를 생성하는 데 자주 사용됩니다.
답변2
이 효과의 가장 일반적인 원인은 열려 있는 파일이 삭제되었기 때문입니다.
커널은 파일이 삭제될 때 파일이 사용 중이 아닌 경우에만 파일에 대한 디스크 블록을 해제합니다. 그렇지 않으면 파일이 닫히거나 시스템이 다시 시작될 때까지 이 작업이 지연됩니다.
임시 파일을 남겨두지 않도록 하기 위한 Unix 세계의 일반적인 방법은 다음과 같습니다.
- 프로세스가 임시 파일을 생성하고 엽니다.
- 프로세스는 열린 파일 설명자를 계속 유지하면서 파일의 링크를 해제(즉, 삭제)합니다.
- 프로세스는 일반적으로 파일 설명자를 사용하여 파일을 읽고 씁니다.
- 프로세스가 완료된 후 파일 설명자가 닫히고 커널이 공간을 확보합니다.
- 프로세스(또는 시스템)가 예기치 않게 종료되면 임시 파일이 삭제되었으므로 정리가 필요하지 않습니다.
- 보너스로, 파일을 삭제하면 임시 파일을 생성할 때 이름이 충돌할 가능성이 줄어들고 루트를 제외한 모든 사람에게 실행 중인 프로세스에 대한 추가 모호한 레이어가 제공됩니다.
이 동작을 통해 프로세스는 갑자기 자신의 발 밑에서 빠져나오는 파일을 처리할 필요가 없으며 파일을 삭제하기 위해 프로세스가 서로 협상할 필요가 없습니다. 그러나 일반적으로 사용 중인 파일을 삭제하는 것이 허용되지 않으므로 이는 Windows 시스템 사용자에게는 예상치 못한 동작입니다.
lsof 명령은 루트로 실행될 때 열려 있는 모든 파일을 표시하고 특히 제거된 삭제된 파일을 나타냅니다.
# lsof 2>/dev/null | grep deleted
bootlogd 2024 root 1w REG 9,3 58 917506 /tmp/init.0W2ARi (deleted)
bootlogd 2024 root 2w REG 9,3 58 917506 /tmp/init.0W2ARi (deleted)
문제가 있는 프로세스를 중지하고 다시 시작하거나 서버를 다시 시작하면 문제가 해결됩니다.
예를 들어, 삭제된 파일이 마운트된 파일 시스템 이미지인 경우 커널은 해당 파일을 열어 둘 수도 있습니다. 이 경우 파일 시스템을 마운트 해제하거나 서버를 다시 시작하면 문제가 해결됩니다.
귀하의 경우 "누락된" 공간의 양으로 판단하여 설치 후 삭제한 Centos DVD 이미지와 같이 VPS를 설정하는 데 사용한 파일에 대한 참조를 찾아보겠습니다.