Thanks everyone for posting feedback.
More benchmarking results are available at https://fedoraproject.org/wiki/Category:Changes/OptimizeSquashFS, including the 'plain' SquashFS filesystem.
After performing the tests, I personally recommend to use xz compression with 1MiB block size, without bcj, on a 'plain' squash filesystem -- this will lead to a reduction of 142MiB on the ISO, compared to the stock Fedora 31 Workstation x86_64 image.
Alternative compression options, such as Zstd, are also mentioned in the change proposal.

Select re-packaged ISOs of Fedora 31 Workstation x86-64 is available for download at https://khomutsky.com/fedora-dvd/

On Mon, Jan 13, 2020 at 5:34 PM Kamil Paral <kparal@redhat.com> wrote:
On Sun, Jan 12, 2020 at 5:46 PM Bohdan Khomutskyi <bkhomuts@redhat.com> wrote:

I posted more benchmark results in this article: https://fedoraproject.org/wiki/Category:Changes/OptimizeSquashFS

In short, bigger block size and higher compression ratio does not increase the installation time for Fedora Workstation.  I saw the opposite effect.
The Zstd compression performed worse than XZ in the compression test. On the other hand, 40% lower installation time for Zstd, was documented. Along with the CPU consumption 37% lower.
All installation tests were performed from and to local NVMe storage. Which I consider far from real life scenario.

This is very interesting, thank you!

The "CPU user time" should be independent on the number of CPU cores you have, is that correct? I.e. the number should be always roughly the same, whether you run it on 1 core, 2 cores or 8 cores, right? I'm asking because our QA tests often use 1-2 cores for installation, and I assume you used all your available cores (if I read it correctly, you seem to have a 4 core system), therefore the "real time" value is applicable just to your system, but the "cpu user time" should be better comparable to other systems.

How exactly did you measure those numbers, can you please provide reproduction steps?

I'm quite surprised that plain squashfs is a bit smaller, but also a bit slower than squashfs+ext4. Our expectations were that it would be faster.

Looking at compressions, the most interesting results for me are:
-comp xz, without -Xbcj x86 --- cutting CPU time by 50% at the expense of 30MB is awesome
-Xdict-size 1M -b 1M, without -Xbcj x86 (optionally with hardlinking) --- 33% speedup while also saving 110 MB
-comp zstd -Xcompression 15 -b 1M --- blazing fast installation with cutting CPU time by 80%, but also increasing the size by 150 MB

I'm sure different people will have different priorities regarding size and installation time, but these are really interesting numbers, thanks for benchmarking.

devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-leave@lists.fedoraproject.org
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org

Bohdan Khomutskyi, RHCE
Release configuration management engineer, PnT DevOps
Red Hat Czech s.r.o
T: +420532270289     IRC: bkhomuts