X-Spam-Check-By: sourceware.org From: "Gary R. Van Sickle" To: , "'Vladimir Dergachev'" Subject: RE: NTFS fragmentation Date: Wed, 2 Aug 2006 18:08:57 -0500 Message-ID: <004401c6b688$a2ffd300$020aa8c0@DFW5RB41> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 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 Precedence: bulk List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , 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/