Closed
Description
Problem: after deleting several large files (~50Gb summary) ZFS goes crazy on CPU usage.
For about a minute it hogs all cores (it's 2 x 6 core E5-2620 with HT, 24 CPUs total) to 100% with about 48 running "z_fr_iss_X" threads (or more, hard to say).
Then, when they are done, txg_sync goes for some time using 30% of one core, but that's Ok i presume.
Without PREEMPT kernel this literally blocks all userspace activity for this period of time.
I can switch to PREEMPT as it's now supported by ZFS, but i'd rather not to.
Kernel 4.1.12, ZoL 0.6.5.3, 256Gb RAM.
ZFS created with:
zpool create zfs1 \
-o feature@async_destroy=enabled \
-o feature@empty_bpobj=enabled \
-o feature@lz4_compress=enabled \
-o feature@spacemap_histogram=enabled \
-o feature@enabled_txg=enabled \
-o feature@embedded_data=enabled \
-o feature@hole_birth=enabled \
-o feature@extensible_dataset=enabled \
-o ashift=9 \
-O recordsize=128k \
-O checksum=sha256 \
-O dedup=sha256 \
-O compression=lz4 \
-O atime=off \
-O relatime=off \
-O logbias=latency \
-O primarycache=all \
-O secondarycache=none \
raidz2 \
/dev/mapper/D01_9Y0RA \
/dev/mapper/D02_B9G2A \
/dev/mapper/D03_B01GA \
/dev/mapper/D04_B9GDA \
/dev/mapper/D05_AU1HA \
/dev/mapper/D06_BD4HA \
/dev/mapper/D07_7P85D \
/dev/mapper/D08_93WJA \
/dev/mapper/D09_4394K \
/dev/mapper/D10_BDYKA \
log mirror \
/dev/mapper/SSD1_SLOG \
/dev/mapper/SSD2_SLOG \
/dev/mapper/SSD3_SLOG
Pool size is ~21Tb and it's empty but for these test files.
If there's any more info required - ask.