OpenZFS 2.1 performance improvements

The version 2.1 of OpenZFS is going to be released soon supporting Linux kernels from 3.10 to 5.13 and FreeBSD 12+. This will be the first long term release (LTS) version of OpenZFS.

Alexander Motin and other OpenZFS developers are currently working on various micro-optimizations in areas like atomics, counters, scalability and memory usage. Most of the optimizations are already part of the upcoming release. Release candidate testers already report improved performance compared to OpenZFS 2.0 and previous releases.

For those interested in technical implementation details, a selection of interesting pull requests with links to detailed descriptions follows (most of the PRs are already merged):

  • PR #9930, #12145: aggsum optimizations
  • PR #11904: Atomics improvements
  • PR #11966: Scaling of worker threads and taskqs with number of CPUs
  • PR #12046: Scrub maxinflight_bytes math
  • PR #12114, #12172: Write-mostly sums
  • PR #12183: Small random numbers generation
  • PR #12158: multilist_t storage improvements
  • PR #12212: Pool io kstats removed
  • PR #12279: ARC ghost states eviction accounting
  • PR #12281: gethrtime() calls moved out of vdev queue lock
  • PR #12287: refcount removed from spa_config_*()
  • PR #12289: Compacted dbuf/buf hashes and lock arrays
  • PR #12290: avl_size field removed from struct avl_tree
  • PR #12297: vq_lock drop avoided in vdev_queue_aggregate()
  • PR #12300: Introduction of dsl_dir_diduse_transfer_space()

Links:
OpenZFS homepage
OpenZFS documentation
Installing OpenZFS
Information on the OpenZFS versioning model (PR #11821)

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>