NTFS fragmentation

Larry Hall (Cygwin) reply-to-list-only-lh@cygwin.com
Thu Aug 3 01:11:00 GMT 2006


Vladimir Dergachev wrote:
> Hi Gary and Larry, 
> 
>       Thank you for your comments, replies below:
> 
> On Wednesday 02 August 2006 7:08 pm, you wrote:
>>>         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?
> 
> I tried buffer_size of 10K, 100K, 1M and 10M - no big difference, except a 
> small decrease in number of fragments for 10M value - could be noise..
> 
> I also tried a smaller file size - 3M, the number of fragments decreased to 
> 33, roughly proportionally to size.
> 
> Unfortunately, I do not know what cluster size is.
> 
> With regard to sparse files the intent here is to open a file, write data to 
> it and the close. No seeks involved, much less void regions. I do understand 
> that internally cygwin could do something different. 
> 
> I have not found a utility to identify a sparse file yet - if you happen to 
> have a link I would greatly appreciate it.
> 
> Also, I tried the following experiment - found a 17 MB file in ibiblio.org and 
> downloaded it with FireFox. The file ended up fragmented into more than 200 
> pieces. Tried the same file with IE - no fragmentation.
> 
> It could be, of course, that Firefox is compiled with cygwin, but I have not 
> found cygwin.dll anywhere in its installation directory.


If you pulled it from Mozilla.org, it ain't Cygwin-based.  That would point to
a more general, non-Cygwin problem.


> PS I'll try writing a C program when time permits - any suggestions on what 
> API besides regular open/write/close to use ?


I would recommend making a POSIX API version and a straight Win32 version.
But if what you said about Firefox is true, you should see a similar problem
even using MinGW (www.mingw.org) or the '-mno-cygwin'.  Again, that would
point to this being a non-Cygwin problem, though still quite an annoying one.



-- 
Larry Hall                              http://www.rfk.com
RFK Partners, Inc.                      (508) 893-9779 - RFK Office
216 Dalton Rd.                          (508) 893-9889 - FAX
Holliston, MA 01746

--
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/



More information about the Cygwin mailing list