DragonFly BSD
DragonFly kernel List (threaded) for 2012-05
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Master branch and 3.0 release branch performance & disk use fixes


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Tue, 1 May 2012 19:21:05 -0700 (PDT)

    The following fixes have gone into master and also been MFC'd to the
    release branch (commitids for master):

	b642a6c1f5bbb295e29522d99c65038f459288ac
	kernel - Fix degenerate cluster_write() cases

	66030e2b4635359f2d84f23298c9d8ce1e6af5da
	HAMMER VFS - Only set B_CLUSTEROK on 64K buffers

    This fixes a serious performance issue which we introduced when we
    turned on the cluster buf code in HAMMER.  The code inadvertently
    removed a file EOF check that caused fragmentory writes to the
    end of a file to immediately flush to disk, greatly reducing filesystem
    performance by causing excessive writes to disk as well as temporary
    blocking conditions due to the I/O in progress.

    Since HAMMER does allocate-on-flush this also caused bloated
    filesystem space usage.  The space would be recovered automatically
    by the nightly hammer cleanup code but in the mean time could eat a
    huge amount of space (4x to 25x) when writing out a file.

    There was also a 'zeros in file' bug reported for HAMMER which I
    believe these commits should get rid of.

					-Matt
					Matthew Dillon 
					<dillon@backplane.com>



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]