Re: zpool frag

From: Allan Jude <allanjude_at_freebsd.org>
Date: Sun, 21 Sep 2014 13:51:22 -0400
On 2014-09-21 13:39, Peter Wemm wrote:
> On Sunday, September 21, 2014 06:12:09 PM Steven Hartland wrote:
>> ----- Original Message -----
>>
>>> From: "Peter Wemm" <peter_at_wemm.org>
>>>
>>> On Sunday, September 21, 2014 11:06:10 AM Allan Jude wrote:
>>>> On 2014-09-21 04:57, Beeblebrox wrote:
>>>>> FRAG means fragmentation, right? Zpool fragmentation? That's news to
>>>>> me.
>>>>> If
>>>>> this is real how do I fix it?
>>>>>
>>>>> NAME      SIZE  ALLOC   FREE   FRAG  EXPANDSZ    CAP  DEDUP  HEALTH
>>>>> ALTROOT pool1      75.5G  53.7G  21.8G    60%         -    71%  1.00x
>>>>> ONLINE  - pool2      48.8G  26.2G  22.6G    68%         -    53% 
>>>>> 1.00x
>>>>> ONLINE  - pool3       204G   177G  27.0G    53%         -    86% 
>>>>> 1.11x
>>>>> ONLINE  -
>>>>
>>>> It is not something you 'fix', it is just a metric to help you
>>>> understand the performance of your pool. The higher the fragmentation,
>>>> the longer it might take to allocate new space, and obviously you will
>>>> have more random seek time while reading from the pool.
>>>>
>>>> As Steven mentions, there is no defragmentation tool for ZFS. You can
>>>> zfs send/recv or backup/restore the pool if you have a strong enough
>>>> reason to want to get the fragmentation number down.
>>>>
>>>> It is a fairly natural side effect of a copy-on-write file system.
>>>>
>>>> Note: the % is not the % fragmented, IIRC, it is the percentage of the
>>>> free blocks that are less that a specific size. I forget what that size
>>>> is.
>>>
>>> I fear that the information presented in its current form is going to
>>> generate lots of fear and confusion.
>>>
>>> The other thing to consider is that this gets much, much worse as the pool
>>> fills up.  Even UFS has issues with fragmentation when it fills, but ZFS
>>> is far more sensative to it.  In the freebsd.org cluster we have a health
>>> check alert at 80% full, but even that's probably on the high side.
>>
>> This "should" be less of an issue if you have the spacemap_histogram feature
>> enabled on the pool, which IIRC if your seeing FRAG details should be the
>> case.
> 
> Hopefully so.  The catch though is when its been run without it until recently 
> it can be a bit of a surprise.
> 
> 

From an email exchange with George Wilson (developer of the
spacemap_histogram feature):

"You can use it on existing pools but the histogram only gets created
when you condense a space_map (a process by which ZFS tries to make the
space_map ondisk smaller). This means that when you look at an existing
pool it may have some space_maps with histograms and ones without."

This likely means that on a pool that has (recently??) been upgrade, the
FRAG metric may fluctuate wildly, as more and more space_maps get a
histogram.

The histogram feature doesn't really solve the problem of fragmentation,
it just makes the pool perform better when it is fragmented, as the pool
can more reliably find the space_map containing the largest area of
contiguous free space in order to maintain performance.


-- 
Allan Jude


Received on Sun Sep 21 2014 - 15:51:26 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:52 UTC