xfs
[Top] [All Lists]

maxpct option for small xfs filesystems

To: xfs@xxxxxxxxxxx
Subject: maxpct option for small xfs filesystems
From: Alexander Tsvetkov <alexander.tsvetkov@xxxxxxxxxx>
Date: Mon, 26 Jan 2015 19:14:43 +0300
Delivered-to: xfs@xxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0
Hello,

I'm trying to understand the expected behaviour of "maxpct" option in case of small xfs filesystem comparing the maximum percentage defined for this option with the percentage of actually allocated inodes in filesystem, but the result of prepared test case doesn't correspond to the expectations:

[root@fedora ~]#mkfs.xfs -f -d size=16m -i maxpct=1 /dev/sdb2
[root@fedora ~]# mount /dev/sdb2 /mnt/scratch/
[root@fedora ~]# mount | grep scratch
/dev/sdb2 on /mnt/scratch type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
[root@fedora ~]# xfs_info /mnt/scratch/
meta-data=/dev/sdb2        isize=256    agcount=1, agsize=4096 blks
                 =                       sectsz=512   attr=2, projid32bit=1
                 =                       crc=0        finobt=0
data          =                       bsize=4096   blocks=4096, imaxpct=1
                 =                       sunit=0      swidth=0 blks
naming     =version 2        bsize=4096   ascii-ci=0 ftype=0
log            =internal           bsize=4096   blocks=853, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime    =none               extsz=4096   blocks=0, rtextents=0

then trying to fill filesystem with lot of empty files until enospc obtained and break the loop:

[root@fedora ~]# for i in {0..100000}; do str=$(mktemp --tmpdir=/mnt/scratch tmp.XXXXXXXXXX); echo $str; done

filesystem is full with created files:

[root@fedora ~]# df -Th | grep scratch
/dev/sdb2      xfs        13M   13M  148K  99% /mnt/scratch

and from the number of actually created inodes:

[root@fedora ~]# xfs_db -c "blockget -n" -c "ncheck" /dev/sdb2 | wc -l
40512

it's calculated the space allocated for file inodes 9.9Mb (40512*256b inode size) that is about 77% of filesystem
space instead of defined maximum with maxpct=1% or even default 25% value.

Thanks,
Alexander Tsvetkov

<Prev in Thread] Current Thread [Next in Thread>