내 공간은 어디에 있나요? [복사]

내 공간은 어디에 있나요? [복사]

49/59G를 사용하고 있다고 해서 df공간을 찾기 시작했습니다.

$ df -h

Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        59G   49G  7.9G  86% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            2.0G  4.0K  2.0G   1% /dev
tmpfs           396M  340K  396M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm
none            100M     0  100M   0% /run/user
overflow        1.0M     0  1.0M   0% /tmp

``처음으로 시도해 봤는데du

5.1G    .
2.3G    ./var
1.3G    ./usr
973M    ./var/log
834M    ./lib
736M    ./lib/modules
713M    ./var/lib
600M    ./root
592M    ./var/log/nginx
456M    ./var/www

저는 수학 전공은 아니지만 49G는 아니라고 확신합니다.

이것을 시도해 ncdu보니 5GB/128GB를 사용하고 있는 것으로 나타났습니다.

답변1

그 이유 중 하나는 파일이 디스크에서 제거되었지만 여전히 메모리에 열려 있기 때문입니다. 이러한 파일은 삭제되었지만 여전히 디스크 공간을 차지하고 있는 것으로 보고되었습니다.

를 사용하여 이 상태의 파일이 있는지(그리고 어떤 프로세스가 해당 파일을 열어 두는지) 확인할 수 있습니다 lsof.

$ lsof | grep deleted

open.pl 15220 steve 3r REG 8,1 70 56099817 /home/steve/scratch/in.txt (deleted)

열 7(위의 경우 70)은 파일 크기(바이트)입니다. 첫 번째 열(open.pl)은 파일을 열어두는 프로세스입니다. 두 번째 열은 프로세스의 PID입니다.

일반적으로 이는 대용량 로그 파일이 삭제되었지만 해당 파일을 사용하는 프로세스가 다시 시작되지 않을 때 발생합니다.

이 공간을 확보하려면 파일이 아직 열려 있는 서비스를 다시 시작하면 됩니다.

답변2

항상 "누락된" 것이 있습니다... 우선, 디렉토리에 있는 inode 테이블, 파일 이름 목록 및 유사한 항목이 약간의 공간을 차지합니다. 예전 플로피 디스크는 1.44MB였지만 MS-DOS FAT 파일 시스템에서는 1.38MB만 저장할 수 있었던 것으로 기억합니다.

둘째, Linux/Unix 파일 시스템은 일반적으로 루트용으로 몇 퍼센트의 공간을 예약합니다. 이렇게 하면 사용자가 전체 파일 시스템을 가득 채우더라도 루트는 여전히 작업할 수 있는 공간이 있으며 루트에 속한 로그를 사용할 수 있습니다. 기본값은 5%입니다. 1TB 또는 2TB 디스크의 경우 이 값은 상당히 커질 수 있습니다(더 적게 설정하는 것이 안전합니다).

tune2fs명령을 사용하면 -m 옵션을 사용하여 백분율을 지정할 수 있습니다. tune2fs -m 1 /dev/sda11%만 유지하세요(그만큼 유지해야 함).

관련 정보