ZFS sok kis file írás lassú

Fórumok

Hello

Van egy config 15G ram, 24cpu

ilyen felállásban

<code>

NAME        STATE     READ WRITE CKSUM
        data_pool   ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            sdb     ONLINE       0     0     0
            sdc     ONLINE       0     0     0
          mirror-1  ONLINE       0     0     0
            sdd     ONLINE       0     0     0
            sde     ONLINE       0     0     0
          mirror-2  ONLINE       0     0     0
            sdf     ONLINE       0     0     0
            sdg     ONLINE       0     0     0
          mirror-3  ONLINE       0     0     0
            sdh     ONLINE       0     0     0
            sdi     ONLINE       0     0     0

</code>

 

Ha kitömörítek mondjuk egy tar-t amiben sok kis file van akkor az lassú. Több percig is eltart, míg az alap írási sebesség 200Mb/sec.

SSD cache nincs.

Min érdemes hangolni?

Hozzászólások

Ezen nem a cache segit (az olvasashoz jo), hanem a log device (ami a serial write-ot segiti).

recordsize=4k

primarycache=metadata

 bár ez utóbbi az olvasásnak nem tesz jót.

Illetve érdemes kontrol mérést végezni mondjuk LVM+XFS/EXT4-gyel, hogy lsd mennyivel lassabb.

Szerkesztve: 2021. 10. 06., sze – 18:16

Megjegyzem, csavartam eleget ZFS-t, de az inode műveletek terén az ext4-nek közelébe sem ér tempóban.
Az viszont vitathatatlan, hogy nagyon rugalmas.

Szerkesztve: 2021. 10. 06., sze – 18:21

A ZFS készítésekor is érdemes figyelni, én ezekkel a paraméterekkel szoktam csinálni zpoolt:

zpool create \
    -o ashift=12 -o autotrim=on \
    -O acltype=posixacl -O compression=zstd-fast \
    -O dnodesize=auto -O normalization=formD -O relatime=on \
    -O xattr=sa [...] \
    zfspool ${DISK}

Ezen kívül be szoktam állítani ezt is a /etc/modprobe.d/zfs.conf-ban:

options zfs zfs_arc_max=536870912

 A compression nálam alap, de ahogy fent is írták, a recordsize-zal is érdemes játszani, Sibike kolléga javasolta a 4K-t, nekem teljesen validnak tűnik.

Mondjuk, ha a recordsize=4K és az ashift=12, akkor a compression inkább csak elméleti dolog :-D

truenas, 8GB ram, asztali pentium  ,  raidZ2 6x WDRed 6TB (5400 rpm)

 

4k szinkron 1000MB

 fio --name=teszt_1 --filename=./testfile1 --size=1000M --bs=4k --iodepth=1 --rw=randwrite --randrepeat=1 --sync=1 --fsync=1  |grep WRITE
  WRITE: bw=5205KiB/s (5330kB/s), 5205KiB/s-5205KiB/s (5330kB/s-5330kB/s), io=1000MiB (1049MB), run=196724-196724msec
 

4k aszinkron 10GB

fio --name=teszt_1 --filename=./testfile1 --size=10G --bs=4k --iodepth=1 --rw=randwrite --randrepeat=1   |grep WRITE
  WRITE: bw=67.1MiB/s (70.3MB/s), 67.1MiB/s-67.1MiB/s (70.3MB/s-70.3MB/s), io=10.0GiB (10.7GB), run=152645-152645msec
 

128 k 20G aszinkron

 fio --name=teszt_1 --filename=./testfile1 --size=20G --bs=128k --iodepth=1 --rw=randwrite --randrepeat=1   |grep WRITE
  WRITE: bw=310MiB/s (325MB/s), 310MiB/s-310MiB/s (325MB/s-325MB/s), io=20.0GiB (21.5GB), run=66123-66123msec