하드디스크 사용량 관련 질문입니다. du, df
글쓴이: cycix / 작성시간: 토, 2013/06/22 - 10:30오후
하드 디스크 사용량 관련 질문입니다.
현제 이렇게 되어 있는데요...
272G 중에 250G 사용중 이라는 뜻이 라고 알고 있읍니다.
그런데 du -sh /디렉토리 하면
bin 7.5M
boot 6.3M
aaa -
dev 80K
etc 56M
home 256K
lib 78M
lost+found 16K
media 8K
misc 0
mnt 8K
bbb 14G
net 0
opt 8K
proc 0
root 236K
sbin 30M
selinux 0
srv 8K
sys 0
tmp 44K
usr 94G
var 7G
이렇게 나오거든요...
(aaa에는 처치곤란 쓰레기들이 약3G정도 들어 있읍니다.)
그러면 총합이 약 180G정도 되는데
사용량 250G와 차이가 납니다..
어떻게 하면 이 250G를 전부 찾을수 있을까요?
File attachments:
첨부 | 파일 크기 |
---|---|
q01.jpg | 45.33 KB |
Forums:
사용한 블럭 크기와 실제 사용량 사이의 차이
사용한 블럭 크기와 실제 사용량 사이의 차이 아닐까요?
피할 수 있을때 즐겨라! http://melotopia.net/b
사용한 블럭크기는 실제 사용되는게 아닌건가요?
사용한 블럭크기는 실제 사용되는게 아닌건가요? ㅜ.ㅜ
이해가 잘 안가서요...
df -k 에서 used의 항목을 개별 디렉토리에서도 조회하고 싶어서요
어디서 이렇게 많이 쓰는지 알아야 관리를 좀 할텐데....ㅜ.ㅜ
도움좀...
제..취미는...삽질......입니다 -_-;;;
첨부하신 그림의 총 블럭 숫자에서 Used 와
첨부하신 그림의 총 블럭 숫자에서 Used 와 Available의 합계를 빼면 0이 아니고 14057472가 계산 됩니다.
272345280-(250397904+7889904)
14057472
ext4 파일 시스템의 경우 파일 시스템을 만들때 기본값 5%로 reserved space를 할당 합니다. 각종 비상 상황시 원활한 복구 작업이나 파일 단편화 관련한 문제 때문에 만들어 놓는다고 하더군요.
총 블럭의 5%를 구해보면,
272345280*0.05
13617264.00
의문의 나머지 블럭과 얼추 일치하네요.
tune2fs명령으로 확인해 볼 수 있습니다.
sudo tune2fs -l /dev/sda1|grep Reserved
Reserved block count: 1465228
Reserved GDT blocks: 1017
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
역시 tune2fs 명령으로 이 예약 영역을 조절할 수 있습니다. 마운트 된 상태에서 하셔도 됩니다.
sudo tune2fs -m N /dev/sdXX
N에 원하는 퍼센트를 숫자만 적어주시면 됩니다. 저는 / 파티션은 1%만 잡고 데이터 파티션은 0%로 설정 합니다.
http://askubuntu.com/questions/19504/reasonable-size-for-filesystem-reserved-blocks-for-non-os-disks
du를 사용하실 때 디렉토리 단위로만 출력해 주기 때문에 지정한 디렉토리에 있는 파일들의 용량은 각각 출력해 주지 않습니다.
저는 다음과 같이 파일을 포함하여 용량이 큰 순서대로 출력해서 정리하곤 합니다. du 명령에 주는 디렉토리 이름만 계속 바꿔 주면서 파고 드시면 됩니다.
sudo du -d 1 -a -h -x / | sort -h -r
45G /
33G /home
5.3G /var
4.4G /usr
1.4G /opt
262M /lib
30M /boot
16M /etc
12M /sbin
9.9M /bin
3.8M /lib32
152K /tmp
64K /root
16K /lost+found
16K /.local
8.0K /media
4.0K /srv
4.0K /selinux
4.0K /mnt
4.0K /lib64
4.0K /cdrom
0 /vmlinuz
0 /initrd.img.old
0 /initrd.img
X 환경에서는 baobab, xdiskusage를 사용하실 수도 있습니다. baobab은 삭제도 되서 편리합니다.
>>272G 중에 250G 사용중 이라는 뜻이 라고 알고 있읍니다.
그렇지 않습니다. df -h 명령을 이용하세요. -H 옵션은 제조사에서 말하는 용량대로 보여 줍니다. -h = *1024, -H *1000
제 60G, 120G 디스크의 출력을 보시죠. 60G 디스크의 4G 정도 스왑 파티션으로 쓰고 있습니다.
$ df -k|grep '/dev/sd'
/dev/sdb1 53433852 46485596 6404052 88% /
/dev/sda1 115246568 47034560 68212008 41% /mnt/120G
$ df -h|grep '/dev/sd' <-- 1byte * 1024 * 1024 ... 1024 기준
/dev/sdb1 51G 45G 6.2G 88% /
/dev/sda1 110G 45G 66G 41% /mnt/120G
$ df -H|grep '/dev/sd' <-- 제조사 광고 기준 수치 1byte * 1000 * 1000 ... 1000 기준
/dev/sdb1 55G 48G 6.6G 88% /
/dev/sda1 119G 49G 70G 41% /mnt/120G
--
마잇
Reserved 영역도 있었군요.. 역시 알아야
Reserved 영역도 있었군요.. 역시 알아야 ㅜ.ㅜ
그렇게 되면 Size = Used + Avail + Reserved 는 나오는데요
문제가 Used 의 양과 전체 디렉토리 크기 조회의 양이 다르다는게 문제가 좀 됩니다.
약 120G정도의 차이가 발생이 되어서
어디서 차이가 나는지 궁금해서요..
du -sh /etc
위에 적어둔 것이
이런 식으로 루트 에 있는 디렉토리들을 조회한 결과거든요..
조회한 방식에 문제가 있는것인가요??
150G짜리 5개로
Raid 1+0 +spare 이렇게 미러링 구성하고 있는데요
하드디스크 2개가 마운트 되서 300G 그리고 2개는 미러링 구성이 잡혀있고
하나는 스페어로 돌아간다고 생각하고 있었는데, 왠지 뭔가 잘못되어 가는 느낌이 드는건 왜일까요 -_-;;
(시스템 구성을 제가 한게 아니라서 -_-;;)
그래서 질문 추가 합니다
미러링 구성하면 df -k정보에 구성한 미러링도 마운트가 되어 나오나요???
제..취미는...삽질......입니다 -_-;;;
제가 올려드린 명령 사용해 보셨나요. sudo du
제가 올려드린 명령 사용해 보셨나요.
디렉토리별로 각각 하지 마시고 마운트 되어있는 '/'에 직접 하셔서 합계를 한번 보세요.
--
마잇
/ 조회는 아직 할 수 없답니다. 아직 쓰레기 처리가
/ 조회는 아직 할 수 없답니다.
아직 쓰레기 처리가 안되서...-_-;;
처리중인데...
700M 삭제하는데 2틀간 돌려도 지워지지를 않는군요 -0-;;;
제..취미는...삽질......입니다 -_-;;;
간혹 log 파일이나 누군가가 access 하고 있는
간혹 log 파일이나 누군가가 access 하고 있는 파일을 삭제하게 될경우 실제 free 용량을 제대로 인식하지 못하게 됩니다.
삭제된 파일에 access 하고 있는 process 를 재시작 하게 되면 그때서야 free 용량을 정상 인식하게 되면서 du 용량과 df 용량이 맞게 나올경우가 있습니다.
만약 process 가 정확히 무엇인지 몰른다면, 장비 재부팅으로 전체 process 를 재시작 하면서 확인해 볼수 있을거 같습니다.
재부팅 후 웹서버 닫고 조회해도 별 변화가 없어서
재부팅 후 웹서버 닫고 조회해도 별 변화가 없어서 말이지요...
큰일 입니다 -0-;
제..취미는...삽질......입니다 -_-;;;
0 byte 짜리 파일을 만들어 보니 점유한
0 byte 짜리 파일을 만들어 보니 점유한 block 도 0 입니다.
하지만 0 byte 짜리 "dummy" 라는 파일이 있다는 정보는 어딘가에 공간을 차지하며 기록되어 있겠죠.
1 byte 짜리 파일을 만들어보니 8 개의 블록을 점유하네요.
du 가 어떻게 동작하냐면요
du 는 df 에 비해 턱도 없이 적게 나올 수도 있고, 숨이 턱 막힐 만큼 많게 나올 수도 있습니다.
전자는 작은 크기의 파일이 많이 있을 때이고, 후자는 큰 크기의 파일에 대한 hard link 가 많을 때 입니다.
du 는 ls -l 과 마찬가지로 stat() 으로 파일 크기 정보를 얻은 다음 모두 더해서 출력해주는 것이고,
df 는 statvfs() 로 파일 시스템에 직접 query 를 날려서 정보를 얻습니다.
쓰레기 처리가 우선이 되어야 하겠군요
쓰레기 처리가 우선이 되어야 하겠군요 -_-;;
10일째 돌리는중인데 아직 끝나지 않았읍니다 ㅜ.ㅜ
제..취미는...삽질......입니다 -_-;;;
댓글 달기