delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2006/08/02/19:09:20

X-Spam-Check-By: sourceware.org
From: "Gary R. Van Sickle" <g DOT r DOT vansickle AT worldnet DOT att DOT net>
To: <cygwin AT cygwin DOT com>, "'Vladimir Dergachev'" <vdergachev AT rcgardis DOT com>
Subject: RE: NTFS fragmentation
Date: Wed, 2 Aug 2006 18:08:57 -0500
Message-ID: <004401c6b688$a2ffd300$020aa8c0@DFW5RB41>
MIME-Version: 1.0
X-Mailer: Microsoft Office Outlook 11
In-Reply-To: <200608021833.04775.vdergachev@rcgardis.com>
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

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


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019