On Tue, 1 Apr 2014, Mike Miller wrote:

> On Tue, 1 Apr 2014, Ben wrote:
>
>> -h will always be different from the actual disk usage, you might also 
>> want to play around with -B option too.
>
> I've done that.  Using --si -sB GB gives the same result as --si -sh. 
> Did you think that they would be different?

Thanks for the suggestions.  Now I have answers (below).

I was misusing the --si option there.  It should be used *instead* of -h, 
not in conjunction with it.  These two commands should do the same thing 
when the volume in "dir" is in the multi-gigabyte range...

du -s --si dir
du -sB GB dir

...and so should these two commands:

du -sh dir
du -sB G dir

The first pair will report 1000*1000*1000 bytes and the second will report 
1024*1024*1024 bytes.


>> What happens when you use --apparent-size option.
>> --apparent-size
>>   print apparent sizes,  rather  than  disk  usage;  although the
>>   apparent  size is usually smaller, it may be larger due to holes
>>   in ('sparse') files, internal  fragmentation,  indirect blocks,
>>   and the like
>
> I want to try that, but I'm having this problem right now:
>
> $ ls /project/guanwh
> ls: cannot access /project/guanwh: Stale file handle

Yep, you nailed it.  That was the issue.  If I use --apparent-size, the 
results are consistent.  According to supercomputing staff:

"it is not a bug, -b is implies --apparent-size, so to compare its output 
to -sm/sh you have to include --apparent-size with -sm/-sh as well.

"when the apparent size is different from the reported size it is not a 
bug in du but rather a feature of the filesystem :)"

Now I just have to figure out which is the right size for me -- apparent 
or reported.  I guess apparent sizes are the real file sizes.  In this 
example "dir" has about 10,000 files in it with about half being 5 KB and 
have about 29 MB:

$ du -s --si dir
162G    dir

$ du -s --si --apparent-size dir
143G    dir

$ du -sb dir
142038799951    dir

$ wc -c dir/* | tail -1
142037349967 total


One thing to note:  It seems that du always rounds up.  So if 1.1 GB are 
used, du will report 2 GB.

Mike