Mail Archives: cygwin/2006/08/02/19:09:20
[cc'ing you per your request]
> From: Vladimir Dergachev
> Sent: Wednesday, August 02, 2006 5:33 PM
> Subject: NTFS fragmentation
>
>
> Hi all,
>
> I have encountered a rather puzzling fragmentation
> that occurs when writing files using Cygwin.
>
> What happens is that if one creates a new file and
> writes data to it (whether via a command line redirect or
> with a Tcl script - have not tried C
> yet) the file ends up heavily fragmented.
>
> In contrast, native Windows utilities do not exhibit
> this issue.
>
> Someone suggested to me that Windows requires an
> expected file length to be passed at the time of open, thus I
> searched on Google and found "fsutil" program that allows to
> reserve space on the filesystem.
>
> I attached a small Tcl script that, when run, creates
> two 30 MB files - one using regular open/write pair (and
> which is fragmented into about 300 pieces on my system) and
> one using fsutil/open in append mode/seek 0 method.
>
> To see the problem defragment your system, run the test
> script and then run analyze and ask to view report. You will
> see a.dat at top of the list, while b.dat never appears in
> the report.
>
> Despite the workaround, it is still kinda hard for me
> to believe that anyone has designed a filesystem that needs
> to know what is the file size going to be - especially for a
> single program writing on an almost empty disk. Perhaps there
> is some sort of environment variable that I need to set ?
>
> Any suggestions and comments would be greatly
> appreciated.
> Please CC me - I am not on the list.
>
> thank you very much
>
> Vladimir Dergachev
I'll try your test case when I get a chance, but my WAG is that you're
seeing the effects of Cygwin's creation of sparse files by default for any
file beyond a certain size. I unfortunately do not recall what that size
is. What happens as you change FILE_SIZE and/or BUFFER_SIZE in your script,
to maybe a small multiple of your cluster size?
--
Gary R. Van Sickle
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -