하드디스크 사용량 관련 질문입니다. du, df

cycix의 이미지

하드 디스크 사용량 관련 질문입니다.

현제 이렇게 되어 있는데요...

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: 
첨부파일 크기
Image icon q01.jpg45.33 KB
snowall의 이미지

사용한 블럭 크기와 실제 사용량 사이의 차이 아닐까요?

피할 수 있을때 즐겨라! http://melotopia.net/b

cycix의 이미지

사용한 블럭크기는 실제 사용되는게 아닌건가요? ㅜ.ㅜ
이해가 잘 안가서요...

df -k 에서 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


--
마잇

cycix의 이미지

Reserved 영역도 있었군요.. 역시 알아야 ㅜ.ㅜ

그렇게 되면 Size = Used + Avail + Reserved 는 나오는데요

문제가 Used 의 양과 전체 디렉토리 크기 조회의 양이 다르다는게 문제가 좀 됩니다.
약 120G정도의 차이가 발생이 되어서
어디서 차이가 나는지 궁금해서요..

du -sh /etc
위에 적어둔 것이
이런 식으로 루트 에 있는 디렉토리들을 조회한 결과거든요..
조회한 방식에 문제가 있는것인가요??

150G짜리 5개로
Raid 1+0 +spare 이렇게 미러링 구성하고 있는데요

하드디스크 2개가 마운트 되서 300G 그리고 2개는 미러링 구성이 잡혀있고
하나는 스페어로 돌아간다고 생각하고 있었는데, 왠지 뭔가 잘못되어 가는 느낌이 드는건 왜일까요 -_-;;
(시스템 구성을 제가 한게 아니라서 -_-;;)

그래서 질문 추가 합니다

미러링 구성하면 df -k정보에 구성한 미러링도 마운트가 되어 나오나요???

제..취미는...삽질......입니다 -_-;;;

마잇의 이미지

제가 올려드린 명령 사용해 보셨나요.

sudo du -d 1 -a -h -x / | sort -h -r

디렉토리별로 각각 하지 마시고 마운트 되어있는 '/'에 직접 하셔서 합계를 한번 보세요.

$ df -h /dev/sdb1
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1        51G   47G  3.6G  93% /

$ sudo du -shx /
47G     /


--
마잇

cycix의 이미지

/ 조회는 아직 할 수 없답니다.
아직 쓰레기 처리가 안되서...-_-;;

처리중인데...
700M 삭제하는데 2틀간 돌려도 지워지지를 않는군요 -0-;;;

제..취미는...삽질......입니다 -_-;;;

spinelos의 이미지

간혹 log 파일이나 누군가가 access 하고 있는 파일을 삭제하게 될경우 실제 free 용량을 제대로 인식하지 못하게 됩니다.
삭제된 파일에 access 하고 있는 process 를 재시작 하게 되면 그때서야 free 용량을 정상 인식하게 되면서 du 용량과 df 용량이 맞게 나올경우가 있습니다.
만약 process 가 정확히 무엇인지 몰른다면, 장비 재부팅으로 전체 process 를 재시작 하면서 확인해 볼수 있을거 같습니다.

cycix의 이미지

재부팅 후 웹서버 닫고 조회해도 별 변화가 없어서 말이지요...

큰일 입니다 -0-;

제..취미는...삽질......입니다 -_-;;;

bushi의 이미지

0 byte 짜리 파일을 만들어 보니 점유한 block 도 0 입니다.
하지만 0 byte 짜리 "dummy" 라는 파일이 있다는 정보는 어딘가에 공간을 차지하며 기록되어 있겠죠.

[bushi@rose hiber_imgs]$ touch dummy
[bushi@rose hiber_imgs]$ ls -l dummy 
-rw-rw-r-- 1 bushi bushi 0 2013-06-26 14:40 dummy
[bushi@rose hiber_imgs]$ stat dummy
  File: `dummy'
  Size: 0         	Blocks: 0          IO Block: 4096   일반 빈 파일
Device: 802h/2050d	Inode: 946979      Links: 1
Access: (0664/-rw-rw-r--)  Uid: (  707/   bushi)   Gid: (  707/   bushi)
Access: 2013-06-26 14:40:31.264493202 +0900
Modify: 2013-06-26 14:40:31.264493202 +0900
Change: 2013-06-26 14:40:31.264493202 +0900
[bushi@rose hiber_imgs]$ 

1 byte 짜리 파일을 만들어보니 8 개의 블록을 점유하네요.

[bushi@rose hiber_imgs]$ echo -n "1" > dummy 
[bushi@rose hiber_imgs]$ ls -l dummy
-rw-rw-r-- 1 bushi bushi 1 2013-06-26 14:43 dummy
[bushi@rose hiber_imgs]$ stat dummy
  File: `dummy'
  Size: 1         	Blocks: 8          IO Block: 4096   일반 파일
Device: 802h/2050d	Inode: 946979      Links: 1
Access: (0664/-rw-rw-r--)  Uid: (  707/   bushi)   Gid: (  707/   bushi)
Access: 2013-06-26 14:40:31.264493202 +0900
Modify: 2013-06-26 14:43:10.341494267 +0900
Change: 2013-06-26 14:43:10.341494267 +0900
[bushi@rose hiber_imgs]$ 

du 가 어떻게 동작하냐면요

[bushi@rose hiber_imgs]$ mkdir d_dummy
[bushi@rose hiber_imgs]$ du -bs d_dummy/
4096	d_dummy/
[bushi@rose hiber_imgs]$ ls -l dummy
-rw-rw-r-- 1 bushi bushi 1 2013-06-26 14:43 dummy
[bushi@rose hiber_imgs]$ cp dummy d_dummy/
[bushi@rose hiber_imgs]$ 
[bushi@rose hiber_imgs]$ du -bs d_dummy/
4097	d_dummy/
[bushi@rose hiber_imgs]$
[bushi@rose hiber_imgs]$ ln dummy d_dummy/dummy2
[bushi@rose hiber_imgs]$ du -bs d_dummy/
4098	d_dummy/
[bushi@rose hiber_imgs]$
[bushi@rose hiber_imgs]$ stat dummy d_dummy/dummy2 
  File: `dummy'
  Size: 1         	Blocks: 8          IO Block: 4096   일반 파일
Device: 802h/2050d	Inode: 946979      Links: 2
Access: (0664/-rw-rw-r--)  Uid: (  707/   bushi)   Gid: (  707/   bushi)
Access: 2013-06-26 14:46:38.231493789 +0900
Modify: 2013-06-26 14:43:10.341494267 +0900
Change: 2013-06-26 14:50:37.686498865 +0900
  File: `d_dummy/dummy2'
  Size: 1         	Blocks: 8          IO Block: 4096   일반 파일
Device: 802h/2050d	Inode: 946979      Links: 2
Access: (0664/-rw-rw-r--)  Uid: (  707/   bushi)   Gid: (  707/   bushi)
Access: 2013-06-26 14:46:38.231493789 +0900
Modify: 2013-06-26 14:43:10.341494267 +0900
Change: 2013-06-26 14:50:37.686498865 +0900
[bushi@rose hiber_imgs]$ 

du 는 df 에 비해 턱도 없이 적게 나올 수도 있고, 숨이 턱 막힐 만큼 많게 나올 수도 있습니다.
전자는 작은 크기의 파일이 많이 있을 때이고, 후자는 큰 크기의 파일에 대한 hard link 가 많을 때 입니다.

du 는 ls -l 과 마찬가지로 stat() 으로 파일 크기 정보를 얻은 다음 모두 더해서 출력해주는 것이고,
df 는 statvfs() 로 파일 시스템에 직접 query 를 날려서 정보를 얻습니다.

cycix의 이미지

쓰레기 처리가 우선이 되어야 하겠군요 -_-;;

10일째 돌리는중인데 아직 끝나지 않았읍니다 ㅜ.ㅜ

제..취미는...삽질......입니다 -_-;;;

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.