Just for fun I benchmarked the new lz4 compression algorithm introduced in the latest FreeNAS version on a few different processors. I used the Silesia compression corpus.
The above numbers are for a single thread. Multi-core processors will do better with multiple threads.
I would guess that most people connect to their FreeNAS server over Gigabit ethernet. Notice that even a decade old Pentium 4 can compress data at close to gigabit speeds.
If you benchmark your zfs datasets after enabling compression, remember that zeros compress really well if that's what your benchmark tool uses.
P.S. - The command line I ran was one of the following (depending on which version of LZ4 I had access to):
"lz4c -b silesia.tar" - runs one thread by default
"lz4.exe -T1 -b silesia.tar" - limit to one thread
Code:
Processor Description CompRatio DecompRatio lz4 ver ------------------------------------ ------------------------ -------- Intel Pentium 4 @ 3.20 GHz 113.5 MB/s , 455.2 MB/s LZ4 v1.4 Intel Core2 Quad Q8400 @ 2.66 GHz 232.9 MB/s , 892.6 MB/s LZ4 v1.4 Intel Core2 Quad Q9550 @ 2.83 GHz 245.6 MB/s , 933.7 MB/s LZ4 v1.4 Intel Xeon X5450 @ 3.00 GHz 248.1 MB/s , 953.8 MB/s LZ4 v1.4 Intel Core2 Quad CPU Q9300 @ 2.50GHz 248.6 MB/s , 907.1 MB/s lz4-r101 Intel Core(TM) i5-3550 CPU @ 3.30GHz 413.6 MB/s , 2072.8 MB/s lz4-r101
The above numbers are for a single thread. Multi-core processors will do better with multiple threads.
I would guess that most people connect to their FreeNAS server over Gigabit ethernet. Notice that even a decade old Pentium 4 can compress data at close to gigabit speeds.
If you benchmark your zfs datasets after enabling compression, remember that zeros compress really well if that's what your benchmark tool uses.
P.S. - The command line I ran was one of the following (depending on which version of LZ4 I had access to):
"lz4c -b silesia.tar" - runs one thread by default
"lz4.exe -T1 -b silesia.tar" - limit to one thread