-- Leo's gemini proxy

-- Connecting to senioradmin.de:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini


A (not so little) benchmark comparison between BSD and GNU/Linux


Following the little benchmark from a week ago, I wondered how other tests and systems would compare to this. So I enhanced the test series by adding more metrics and more operating systems.


It still doesn't apply to scientific standards (since I haven't a science lab here), so YMMV.


It all was tested on a virtual machine under Linux KVM on a Devuan 3 machine, which has a i3-2120 CPU. The VM got 4 GB RAM and a 70 GB virtual disk (which was a LVM partition on a 3 TB SATA HDD on the host).


Tested operating sytems


OpenBSD 6.8

NetBSD 9.1

FreeBSD with UFS and ZFS file system

Alpine Linux with Linux kernel 5.10 and musl libc

Debian GNU/Linux 10.8 with Linux kernel 4.19 and glibc


openssl speed md5 sha512 aes blowfish


The OpenSSL speed test is a benchmark on how well cryptographic routines do perform. The following tests were performed


md5 is a hash algorithm producing a 128-bit value

blowfish is a symmetric-key block cipher

AES is a symmetric-key algorithm,

SHA is a hash function, with SHA-512 producing a 512 bit value


256 byte md5 k/sec - higher is better


OpenBSD 6.8     ████████████████████████████████████████████ 203169
NetBSD 9.1      █████████████████████████████████████████████████████████████████████████████████████████████████ 439019
FreeBSD 12.2    ████████████████████████████████████████████████████████████████████████████████████████████████████ 452144
Alpine 3.13     ████████████████████████████████████████████████████████████████████████████████████████████ 416552
Debian 10.8     ██████████████████████████████████████████████████████████████████████████████████████████████████ 447324

256 byte blowfish k/sec - higher is better


OpenBSD 6.8     ███████████████████████████████████████████████████ 59387
NetBSD 9.1      ███████████████████████████████████████████████████████████████████████████████████████████████████ 114977
FreeBSD 12.2    █████████████████████████████████████████████████████████████████████████████████████████ 103381
Alpine 3.13     ████████████████████████████████████████████████████████████████████████████████████████████████████ 115875
Debian 10.8     ██████████████████████████████████████████████████████████████████████████████████████████████████ 114148

256 byte aes-256 k/sec - higher is better


OpenBSD 6.8     █████████████████████████████████████████████████████ 76958
NetBSD 9.1      ██████████████████████████████████████████████████████ 78440
FreeBSD 12.2    ████████████████████████████████████████████████████████████████████████████████████████ 127903
Alpine 3.13     ██████████████████████████████████████████████████████████████████████████████████████ 125829
Debian 10.8     ████████████████████████████████████████████████████████████████████████████████████████████████████ 144693

256 byte sha512 k/sec - higher is better


OpenBSD 6.8     ██████████████████████████████████████████████████████████████████ 175467
NetBSD 9.1      ██████████████████████████████████████████████ 122546
FreeBSD 12.2    ████████████████████████████████████████████████████████████████████████████████████████████████████ 262207
Alpine 3.13     ████████████████████████████████████████████████████████████████████████████████████████████ 242944
Debian 10.8     ████████████████████████████████████████████████████████████████████████████████████████████████ 253442

On Linux, FreeBSD and NetBSD OpenSSL were used for the test, on OpenBSD LibreSSL was used. Regarding hash functions MD5 and SHA-512 FreeBSD performed best, followed by Debian and Alpine. As for symmetric ciphers, Alpine and Debian were the best at Blowfish and Debian was the best at AES by far.


openssl speed rsa4096


RSA is an asymmetric (public key) cryptosystem


sign/s - higher is better


OpenBSD 6.8     ██████████████████████████████████████████████████████████████████████ 80
NetBSD 9.1      ████████████████████████████████████████████████████████████████████████████████████████████████████ 113
FreeBSD 12.2    ████████████████████████████████████████████████████████████████████████████████████████████████████ 113
Alpine 3.13     ████████████████████████████████████████████████████████████████████████████████████████████████████ 113
Debian 10.8     ████████████████████████████████████████████████████████████████████████████████████████████████████ 113

verify/s - higher is better


OpenBSD 6.8     █████████████████████████████████████████████ 3344
NetBSD 9.1      ███████████████████████████████████████████████████████████████████████████████████████████████████ 7307
FreeBSD 12.2    ███████████████████████████████████████████████████████████████████████████████████████████████████ 7285
Alpine 3.13     ███████████████████████████████████████████████████████████████████████████████████████████████████ 7274
Debian 10.8     ████████████████████████████████████████████████████████████████████████████████████████████████████ 7324

At signing and verifying with the RSA algorithm, all OS produced almost identical results, with the exception of OpenBSD.


Towers of Hanoi


Towers of Hanoi is a mathematical game. I used an implementation in C++ from

https://raw.githubusercontent.com/marcovisona/hanoi-bench/master/hanoi.cpp


Time for hanoi 28 (28 decks) in ms - lower is better


OpenBSD 6.8    	█████████████████████████████████ 12284
NetBSD 9.1     	██████████████████████████████████████████████ 16947
FBSD 12.2 g++10 ████████████████████████████████████████████ 16407
FBSD 12.2 clang ████████████████████████████████████████████████████████████████████████████████████████████████████ 36623
Alpine 3.13    	██████████████████████████████████████████ 15650
Debian 10.8    	███████████████████████████████████████ 14590

OpenBSD was best at solving this mathematical puzzle. FreeBSD, using the default C++ clang compiler was the worst by far, which I found very odd. So I installed g++10 on FreeBSD and built the test program with this compiler - now the result was comparable with the other systems. No idea why the Clang produced binary at FreeBSD performed so bad while OpenBSD (which uses Clang as default compiler as well) performed best.


LZMA compression


LZMA is an algorithm used to perform lossless data compression. This test involves I/O as well as computing speed.


Extract firefox-86.0.source.tar.xz in seconds - lower is better


OpenBSD 6.8     ████████████████████████████████████████████████████████████████████████████████████████ 404
NetBSD 9.1      ████████████████████████████████████████████████████████████████████████████████████████████████████ 457
FBSD 12.2 ufs   ██████████████████████████████████████████████████████ 248
FBSD 12.2 zfs   ███████████████ 73
Alpine 3.13     ████████ 41
Debian 10.8     █████████ 43

Extraction of a huge tar.xz file was by far the best at Linux with ext4 file system, follwed by FreeBSD with ZFS.


Compress firefox-86.0 source tree in seconds - lower is better


OpenBSD 6.8     ██████████████████████████████████████████████████████████████████████████████████████████████ 1036
NetBSD 9.1      ██████████████████████████████████████████████████████████████████████████████████████████████ 1042
FBSD 12.2 ufs   ████████████████████████████████████████████████████████████████████████████████████████ 977
FBSD 12.2 zfs   ████████████████████████████████████████████████████████████████████████████████████████████████████ 1098
Alpine 3.13     ███████████████████████████████████████████████████████████████████████████████████████████████ 1048
Debian 10.8     ███████████████████████████████████████████████████████████████████████ 790

Compression was best done by Debian.


I/O with bonnie++


Bonnie++ is a free software file system benchmarking tool for Unix-like operating systems


I/O Output Char k/sec - higher is better


OpenBSD 6.8     █████████████████████████████████████████████ 340
NetBSD 9.1      ██████████████████████████████████████ 293
FBSD 12.2 ufs   ████████████████████████████████████████████████████████████████████████████████████████ 668
FBSD 12.2 zfs   ████████ 66
Alpine 3.13     ████████████████████████████████████████████████████████████████████████████████ 605
Debian 10.8     ████████████████████████████████████████████████████████████████████████████████████████████████████ 754

I/O Output Block k/sec - higher is better


OpenBSD 6.8     █████████████████████████████████████████████████████████████████████████ 167997
NetBSD 9.1      ███████████████████████████████████████████ 99685
FBSD 12.2 ufs   ██████████████████████████████████████████████████████████████████████████████████ 188000
FBSD 12.2 zfs   ████████████████████████████████████████████████████████████████████████████████████████████████████ 229000
Alpine 3.13     ███████████████████████████████████████████████ 109000
Debian 10.8     █████████████████████████████████████████████████ 113000

I/O Input Char k/sec - higher is better


OpenBSD 6.8     ████████████████████ 390
NetBSD 9.1      ████████████████████████████████ 632
FBSD 12.2 ufs   █████████████████████████████████████████████████████ 1038
FBSD 12.2 zfs   ███████████████████████ 463
Alpine 3.13     ████████████████████████████████████████████████████████████████████████████████████████████████████ 1940
Debian 10.8     ███████████████████████████████████████████████████████████████████████████████████████████ 1780

I/O Input Block k/sec - higher is better


OpenBSD 6.8     ████████████████████████████████████████ 159307
NetBSD 9.1      █████████████████████████████████ 133764
FBSD 12.2 ufs   ██████████████████████████████████████████████████ 201000
FBSD 12.2 zfs   ████████████████████████████████████████████████████████████████████████████████████████████████████ 395000
Alpine 3.13     ███████████████████████████████████████████████████ 203000
Debian 10.8     ███████████████████████████████████████████████████ 202000

As the name says, char operations do write or read one byte at a time - while block operations do read/write a larger block. ZFS performed not so good when it comes to many small files, but it leads by far when using block operations (which means big files). FreeBSD on UFS is still good (comparable to ext4 reading large blocks, very good at writing blocks). Ext4 file system were somewhere in the middle.


The ASCII bar charts were made with

barchart.sh


The raw data is available as CSV file

vpsbench.csv

-- Response ended

-- Page fetched on Thu May 2 14:04:30 2024