Performance Gains for 24.04.0 and 13.3

Dropping this little teaser here, but some big performance wins landed today on the upcoming TrueNAS 24.04.0 release. It will be available in a few short weeks on 4/23. We’ll be eager to share some numbers soon, but this is a great change for everybody using SMB/NFS. Thanks @mav for all the hard work :tada:

7 Likes

This is nice news. Do you have any figures you can share with us?

Sticking this old post here. Arc was already getting better, now with this merge it is getting supercharged.

2 Likes

It can very much depend on workload (sequential read queue depth / read-ahead, smaller read-ahead more depends on speculative prefetch), number of CPU cores (more cores may can cause bigger request reorder hurting prefetch), number of disks (wider pools benefit more by reading more in parallel) and disk latency (HDDs benefit much more than SSDs). In some cases of sequential NFS read we saw jump from 240MB/s to 800MB/s and further up to 1.7GB/s, in sequential SMB read from 730MB/s up to 1.5GB/s, etc. But, as I have said, the mileage may vary, depending how bad it was before.

7 Likes

Looking forward 24.04.0

Thanks, Mr. Motin! :+1:

The title has been edited to include 13.3: does this mean 13.3 will get zfs-2.2-4?
Maybe it’s old news and I missed it.

Yes, we are expecting 13.3 to include ZFS 2.2.X (4 or 5). This fall 24.10 will include OpenZFS 2.3.

3 Likes

You can view status of 13.3-stable openzfs port here. Since it’s a github-based port, it has the several important sources of information in its makefile.

USE_GITHUB=	yes
GH_ACCOUNT=	truenas
GH_PROJECT=	zfs
GH_TAGNAME=	8e2dc6693

This means that we’re currently building with commit tag 8e2dc6693 from GitHub - truenas/zfs: OpenZFS on Linux and FreeBSD
Which eagle-eyed observers will realize matches tip of our stable/dragonfish branch.

commit 8e2dc6693244c2692083230124e2c51a679228ed (origin/stable/dragonfish)
Merge: 2e30e5f20 774da47cc
Author: Alexander Motin <mav@ixsystems.com>
Date:   Tue Apr 2 13:00:59 2024 -0400

IIRC, 13.3 and DragonFish will basically have same ZFS and Samba sources / versions.

Generally keeping an eye on the TrueNAS ports tree is the quickest way to find out what is going into 13.3.

NOTE: we don’t build every port. You can get a general idea of what goes into a TrueNAS 13 build here:

^^^ ports built explicitly

^^^ additional ports

This is not an extensive list of everything, but should give a general gist of what goes into the product. Each FreeBSD port has various runtime dependencies (which may in turn have runtime dependencies), these are also built from the ports tree and installed in the product.

7 Likes

Yesterday’s FreeBSD-EN-24:09.zfs mentioned two reports:

https://www.truenas.com/community/threads/truenas-13-3-core-community-contributions.117192/page-2#post-816663 mentioned 275594.

I see https://github.com/truenas/core-build/branches, but (sorry) I can’t easily tell whether the essence of FreeBSD-EN-24:09.zfs was already in a branch there.

A GitHub view of yesterday’s commit:


Cross-reference, in Reddit: FreeBSD-EN-24:09.zfs – High CPU usage by kernel threads related to ZFS : freebsd

1 Like

I think I answered my own question …

zfs-2.2-4-staging was amongst the branches for https://github.com/openzfs/zfs/commit/3ec4ea68d491a82c8de3360d50032bdecd53608f (2023-11-08), with:

should fix excessive pruning on FreeBSD: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=274698

freebsd/freebsd-src@266b3bd was more certain (without the word should):

… fixes excessive pruning on FreeBSD. …


At a glance, changes in this week’s https://github.com/freebsd/freebsd-src/commit/266b3bd3f26d30f7be56b7ec9d31f3db2285b4ce#diff-293f4d1fb73f302245353ee16f7868cc147a336cfadff06b6f72012d3bec22c3 match changes in last year’s https://github.com/openzfs/zfs/commit/3ec4ea68d491a82c8de3360d50032bdecd53608f#diff-ee0b30bb667845dbf75eb4e94a2bf4806f5a0d63182393ded72f17cd9ae88e0f.

1 Like