Skip to content

Commit

Permalink
zfs: bring per_txg_dirty_frees_percent back to 30
Browse files Browse the repository at this point in the history
This cherry-picks upstream eb9bec0

    The current value causes significant artificial slowdown during mass
    parallel file removal, which can be observed both on FreeBSD and Linux
    when running real workloads.

    Sample results from Linux doing make -j 96 clean after an allyesconfig
    modules build:

    before: 4.14s user 6.79s system 48% cpu 22.631 total
    after:  4.17s user 6.44s system 153% cpu 6.927 total

    FreeBSD results in the ticket.

See openzfs/zfs#13932
  • Loading branch information
mjguzik authored and zxombie committed Sep 30, 2022
2 parents 827fc7f + de56ac8 commit 8b12cc7
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 2 deletions.
2 changes: 1 addition & 1 deletion sys/contrib/openzfs/man/man4/zfs.4
Original file line number Diff line number Diff line change
Expand Up @@ -1671,7 +1671,7 @@ prefetched during a pool traversal, like
.Nm zfs Cm send
or other data crawling operations.
.
.It Sy zfs_per_txg_dirty_frees_percent Ns = Ns Sy 5 Ns % Pq ulong
.It Sy zfs_per_txg_dirty_frees_percent Ns = Ns Sy 30 Ns % Pq ulong
Control percentage of dirtied indirect blocks from frees allowed into one TXG.
After this threshold is crossed, additional frees will wait until the next TXG.
.Sy 0 No disables this throttle.
Expand Down
2 changes: 1 addition & 1 deletion sys/contrib/openzfs/module/zfs/dmu.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ static int zfs_nopwrite_enabled = 1;
* will wait until the next TXG.
* A value of zero will disable this throttle.
*/
static unsigned long zfs_per_txg_dirty_frees_percent = 5;
static unsigned long zfs_per_txg_dirty_frees_percent = 30;

/*
* Enable/disable forcing txg sync when dirty checking for holes with lseek().
Expand Down

0 comments on commit 8b12cc7

Please sign in to comment.