* Files appear too big in `du`
@ 2011-05-10 10:57 Matthias Schniedermeyer
2011-05-10 13:17 ` Dave Chinner
0 siblings, 1 reply; 5+ messages in thread
From: Matthias Schniedermeyer @ 2011-05-10 10:57 UTC (permalink / raw)
To: xfs
Hi
Since a few weeks i'm experiencing an annoying 'thing' where files are
often too big in `du` and directory totals are to high in `ls -l`.
I appears that files, which are in the process of beeing
copied/downloaded/whatever, grow in large chunks ahead of time, while
the actual file-content is beeing copied into the files. And then it
appears that the last chunk isn't shrunk after the process is finished.
Neither xfs_bmap (Version 3.1.5) nor filefrag show anything beyond the
extent that compromises the actual file-content.
I've noticed this at least with:
- "git gc"
- cp -a
- rsync
- downloads with firefox (technically Iceweasel)
Kernel is currently 2.6.38.5, Distribution is an up-to-date Debian-SID.
mount is with default-parameters, except "noatime".
Any idea how to debug this, or is this a known bug and waiting a few
days for 2.6.39 should fix this?
Bis denn
--
Real Programmers consider "what you see is what you get" to be just as
bad a concept in Text Editors as it is in women. No, the Real Programmer
wants a "you asked for it, you got it" text editor -- complicated,
cryptic, powerful, unforgiving, dangerous.
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Files appear too big in `du`
2011-05-10 10:57 Files appear too big in `du` Matthias Schniedermeyer
@ 2011-05-10 13:17 ` Dave Chinner
2011-05-10 15:33 ` Matthias Schniedermeyer
0 siblings, 1 reply; 5+ messages in thread
From: Dave Chinner @ 2011-05-10 13:17 UTC (permalink / raw)
To: Matthias Schniedermeyer; +Cc: xfs
On Tue, May 10, 2011 at 12:57:00PM +0200, Matthias Schniedermeyer wrote:
> Hi
>
>
> Since a few weeks i'm experiencing an annoying 'thing' where files are
> often too big in `du` and directory totals are to high in `ls -l`.
>
> I appears that files, which are in the process of beeing
> copied/downloaded/whatever, grow in large chunks ahead of time, while
> the actual file-content is beeing copied into the files.
It's supposed to work like this. It's called speculative allocation
beyond end of file. XFS has always done this, but we've recently
made it more aggressive to prevent excessive fragmentation on
concurrent large file workloads when there is lots of disk space
free.
> And then it
> appears that the last chunk isn't shrunk after the process is finished.
It should be truncated away when the file descriptor is closed and
the last reference goes away.
> Neither xfs_bmap (Version 3.1.5) nor filefrag show anything beyond the
> extent that compromises the actual file-content.
what is the output of xfs_bmap -vvp on a file that apparently hasn't
been shrunk? How do you know it hasn't been shrunk? Does it persist
forever in this state, or does doing something like dropping caches
(echo 3 > /proc/sys/vm/drop_caches) cause the specualtive
preallocation to disappear?
> Any idea how to debug this, or is this a known bug and waiting a few
> days for 2.6.39 should fix this?
It doesn't appear to be doing anything wrong from your description.
Remember that XFS is optimised for high end storage and server
configurations and workloads, not typical desktop usage...
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Files appear too big in `du`
2011-05-10 13:17 ` Dave Chinner
@ 2011-05-10 15:33 ` Matthias Schniedermeyer
2011-05-12 10:01 ` Matthias Schniedermeyer
0 siblings, 1 reply; 5+ messages in thread
From: Matthias Schniedermeyer @ 2011-05-10 15:33 UTC (permalink / raw)
To: Dave Chinner; +Cc: xfs
On 10.05.2011 23:17, Dave Chinner wrote:
> On Tue, May 10, 2011 at 12:57:00PM +0200, Matthias Schniedermeyer wrote:
> > Hi
> >
> >
> > Since a few weeks i'm experiencing an annoying 'thing' where files are
> > often too big in `du` and directory totals are to high in `ls -l`.
> >
> > I appears that files, which are in the process of beeing
> > copied/downloaded/whatever, grow in large chunks ahead of time, while
> > the actual file-content is beeing copied into the files.
>
> It's supposed to work like this. It's called speculative allocation
> beyond end of file. XFS has always done this, but we've recently
> made it more aggressive to prevent excessive fragmentation on
> concurrent large file workloads when there is lots of disk space
> free.
OK.
> > And then it
> > appears that the last chunk isn't shrunk after the process is finished.
>
> It should be truncated away when the file descriptor is closed and
> the last reference goes away.
>
> > Neither xfs_bmap (Version 3.1.5) nor filefrag show anything beyond the
> > extent that compromises the actual file-content.
>
> what is the output of xfs_bmap -vvp on a file that apparently hasn't
> been shrunk? How do you know it hasn't been shrunk? Does it persist
du
> forever in this state, or does doing something like dropping caches
> (echo 3 > /proc/sys/vm/drop_caches) cause the specualtive
> preallocation to disappear?
This works:
sync ; echo 3 > /proc/sys/vm/drop_caches
At least in several tries the `du` output shrunk to the size of the
original.
> > Any idea how to debug this, or is this a known bug and waiting a few
> > days for 2.6.39 should fix this?
>
> It doesn't appear to be doing anything wrong from your description.
> Remember that XFS is optimised for high end storage and server
> configurations and workloads, not typical desktop usage...
I would call it a regression.
I reguarly follow copying/downloading with `du`, the speculative
preallocation makes that more or less useless. Especially downloading
someting big from the internet which @ 231kb/s isn't exactly fast and
shows identical `du`s for increasingly longer periods of time.
(Or "--apparent-size" should be made default, but that falls short with
sparse-files)
IMHO `du`/`ls -l` should not be able to 'see' the speculative
preallocation.
Bis denn
--
Real Programmers consider "what you see is what you get" to be just as
bad a concept in Text Editors as it is in women. No, the Real Programmer
wants a "you asked for it, you got it" text editor -- complicated,
cryptic, powerful, unforgiving, dangerous.
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Files appear too big in `du`
2011-05-10 15:33 ` Matthias Schniedermeyer
@ 2011-05-12 10:01 ` Matthias Schniedermeyer
2011-05-17 8:38 ` Dave Chinner
0 siblings, 1 reply; 5+ messages in thread
From: Matthias Schniedermeyer @ 2011-05-12 10:01 UTC (permalink / raw)
To: Dave Chinner; +Cc: xfs
On 10.05.2011 17:33, Matthias Schniedermeyer wrote:
>
> > > Any idea how to debug this, or is this a known bug and waiting a few
> > > days for 2.6.39 should fix this?
> >
> > It doesn't appear to be doing anything wrong from your description.
> > Remember that XFS is optimised for high end storage and server
> > configurations and workloads, not typical desktop usage...
>
> I would call it a regression.
> I reguarly follow copying/downloading with `du`, the speculative
> preallocation makes that more or less useless. Especially downloading
> someting big from the internet which @ 231kb/s isn't exactly fast and
> shows identical `du`s for increasingly longer periods of time.
> (Or "--apparent-size" should be made default, but that falls short with
> sparse-files)
>
> IMHO `du`/`ls -l` should not be able to 'see' the speculative
> preallocation.
After digging into the log of v2.6.37..v2.6.38 i stumbled upon:
- snip -
The allocsize mount option turns off the dynamic behaviour and fixes
the prealloc size to whatever the mount option specifies. i.e. the
behaviour is unchanged.
- snip -
I think Documentation/filesystems/xfs.txt is in need of an update. All
that information in the commit-log is a little "out-of-reach" for most
people.
Bis denn
--
Real Programmers consider "what you see is what you get" to be just as
bad a concept in Text Editors as it is in women. No, the Real Programmer
wants a "you asked for it, you got it" text editor -- complicated,
cryptic, powerful, unforgiving, dangerous.
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Files appear too big in `du`
2011-05-12 10:01 ` Matthias Schniedermeyer
@ 2011-05-17 8:38 ` Dave Chinner
0 siblings, 0 replies; 5+ messages in thread
From: Dave Chinner @ 2011-05-17 8:38 UTC (permalink / raw)
To: Matthias Schniedermeyer; +Cc: xfs
On Thu, May 12, 2011 at 12:01:53PM +0200, Matthias Schniedermeyer wrote:
> On 10.05.2011 17:33, Matthias Schniedermeyer wrote:
> >
> > > > Any idea how to debug this, or is this a known bug and waiting a few
> > > > days for 2.6.39 should fix this?
> > >
> > > It doesn't appear to be doing anything wrong from your description.
> > > Remember that XFS is optimised for high end storage and server
> > > configurations and workloads, not typical desktop usage...
> >
> > I would call it a regression.
> > I reguarly follow copying/downloading with `du`, the speculative
> > preallocation makes that more or less useless.
There's no guarantee that what du reports is in any way relevant to
the size of the file that is being written. e.g. the filesystem
might be compressing the file, doing inline deduplication,
speculative preallocation, filling holes with preallocated space,
etc. Indeed, XFS reports delayed allocation reservations in du -
blocks that haven't even been allocated yet - but it's always done
that and the behaviour you describe is what you always seen when
using the allocsize mount option....
In essence, a filesystem is free to allocate blocks in any way it
desires - you cannot rely on different filesystems to behave the
same way, and even different releases of the same filesystem to
behave the same way. It's just a bad assumption to make.
> > Especially downloading
> > someting big from the internet which @ 231kb/s isn't exactly fast and
> > shows identical `du`s for increasingly longer periods of time.
> > (Or "--apparent-size" should be made default, but that falls short with
> > sparse-files)
Use an application that shows download progress?
> > IMHO `du`/`ls -l` should not be able to 'see' the speculative
> > preallocation.
ls -l cannot see speculative preallocation beyond EOF of any kind.
Never has, never will - it only reports the file size, not the
number of blocks allocated. du _should_ report it because it is
supposed to report the number of blocks allocated to the inode.
IOWs, they report two different things, so they should have
different behaviour....
> After digging into the log of v2.6.37..v2.6.38 i stumbled upon:
>
> - snip -
> The allocsize mount option turns off the dynamic behaviour and fixes
> the prealloc size to whatever the mount option specifies. i.e. the
> behaviour is unchanged.
> - snip -
>
> I think Documentation/filesystems/xfs.txt is in need of an update. All
> that information in the commit-log is a little "out-of-reach" for most
> people.
Patches welcome.
> --
> Real Programmers consider "what you see is what you get" to be just as
> bad a concept in Text Editors as it is in women. No, the Real Programmer
> wants a "you asked for it, you got it" text editor -- complicated,
> cryptic, powerful, unforgiving, dangerous.
s/text editor/file system/
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2011-05-17 8:38 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-05-10 10:57 Files appear too big in `du` Matthias Schniedermeyer
2011-05-10 13:17 ` Dave Chinner
2011-05-10 15:33 ` Matthias Schniedermeyer
2011-05-12 10:01 ` Matthias Schniedermeyer
2011-05-17 8:38 ` Dave Chinner
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox