Senior Admin

Published by senioradmin on

Benchmark comparison BSD and Linux

senioradmin

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

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

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

Tags: Benchmark.