Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Dec 2016 13:51:56 +1030
From:      Shane Ambler <FreeBSD@ShaneWare.Biz>
To:        gljennjohn@gmail.com, freebsd-fs@freebsd.org
Subject:   Re: when ufs is 99% full, current seems to limit creat to 28672 bytes
Message-ID:  <86167004-c918-f879-e8d9-9abd38e94499@ShaneWare.Biz>
In-Reply-To: <20161225111148.6ee769b8@ernst.home>
References:  <201612250331.uBP3Un70004592@fire.js.berklix.net> <20161225111148.6ee769b8@ernst.home>

next in thread | previous in thread | raw e-mail | index | archive | help
On 25/12/2016 20:41, Gary Jennejohn wrote:
> On Sun, 25 Dec 2016 04:30:49 +0100
> "Julian H. Stacey" <jhs@berklix.com> wrote:
>
>> A puzzle below, that I think I've solved, but comments welcome:
>> When ufs is 99% full, current limits creat to 28672 bytes.
>>

>> Produces loads of little files of size 28672 bytes = 0x7000
>>
>> A foreground fsck of FS shows no errors.  No ZFS in use.  Where
>> does all the extra space come from ?  Why does it keep allowing
>> more little files ?  But not files bigger than 7K ?

>
> I suspect this ia a result of how UFS is designed.  Did you use the
> standard options for block and fragment size?  How about inodes?
>

Been a while since I looked into filesystem specs but as I recall -

My guess is free block fragmentation - I believe on UFS each file is
kept in a continuous strip of blocks on disk. If blocks are 8K and the
system is unable to find more than one free block between existing files
it would prevent a new file over 8k being created, even though there may
be MB of free blocks available throughout the filesystem. At a certain
fill factor moving files to create enough free space becomes too costly.

There is also fragmentation, I understand that multiple (or just two)
small files can be stored in one block, so a 3k file can be added to a
block that already has a 3k file on it, but it may be unable to find
space to create a new 12k file.


-- 
FreeBSD - the place to B...Storing Data

Shane Ambler




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?86167004-c918-f879-e8d9-9abd38e94499>