I have a dataset which has near-constant low IOPS writes (50 IOPS/disk right now). If I am willing to forego some safety in this dataset, can I force it to buffer a certain amount of data/IOPS before committing to disk?
I want fewer, bigger writes to my disk, but I don’t want to impact any other filesystem on the same pool if possible.
More information: This dataset is used for Storj, so I am OK with a little bit of data loss during power outage, since the network is self-healing and redundant.
The dataset is mounted as NFS and then passed into a Docker container.
VM’s /etc/fstab
:
cleteserver.home:/tank/storj /mnt/storj nfs rw,hard 0 0
Output of zfs get all tank/storj
:
✘ ⚡ ~ zfs get all tank/storj
NAME PROPERTY VALUE SOURCE
tank/storj type filesystem -
tank/storj creation Thu Sep 19 20:06 2024 -
tank/storj used 32.8G -
tank/storj available 26.7T -
tank/storj referenced 32.8G -
tank/storj compressratio 1.10x -
tank/storj mounted yes -
tank/storj quota none default
tank/storj reservation none default
tank/storj recordsize 128K default
tank/storj mountpoint /tank/storj default
tank/storj sharenfs no_root_squash,rw=@192.168.1.233/32 local
tank/storj checksum on default
tank/storj compression on inherited from tank
tank/storj atime off inherited from tank
tank/storj devices on default
tank/storj exec on default
tank/storj setuid on default
tank/storj readonly off default
tank/storj zoned off default
tank/storj snapdir hidden default
tank/storj aclmode discard default
tank/storj aclinherit restricted default
tank/storj createtxg 15647936 -
tank/storj canmount on default
tank/storj xattr sa inherited from tank
tank/storj copies 1 default
tank/storj version 5 -
tank/storj utf8only off -
tank/storj normalization none -
tank/storj casesensitivity sensitive -
tank/storj vscan off default
tank/storj nbmand off default
tank/storj sharesmb off inherited from tank
tank/storj refquota none default
tank/storj refreservation none default
tank/storj guid 15862464792787672646 -
tank/storj primarycache all default
tank/storj secondarycache all default
tank/storj usedbysnapshots 0B -
tank/storj usedbydataset 32.8G -
tank/storj usedbychildren 0B -
tank/storj usedbyrefreservation 0B -
tank/storj logbias latency default
tank/storj objsetid 460959 -
tank/storj dedup off inherited from tank
tank/storj mlslabel none default
tank/storj sync standard default
tank/storj dnodesize legacy default
tank/storj refcompressratio 1.10x -
tank/storj written 32.8G -
tank/storj logicalused 34.8G -
tank/storj logicalreferenced 34.8G -
tank/storj volmode default default
tank/storj filesystem_limit none default
tank/storj snapshot_limit none default
tank/storj filesystem_count none default
tank/storj snapshot_count none default
tank/storj snapdev hidden default
tank/storj acltype off default
tank/storj context none default
tank/storj fscontext none default
tank/storj defcontext none default
tank/storj rootcontext none default
tank/storj relatime on default
tank/storj redundant_metadata all default
tank/storj overlay on default
tank/storj encryption off default
tank/storj keylocation none default
tank/storj keyformat none default
tank/storj pbkdf2iters 0 default
tank/storj special_small_blocks 0 default
tank/storj prefetch all default