OpenBSD and Linux comparison: data transfer benchmark

Comment on Mastodon

Introduction

I had a high suspicion about something but today I made measurements. My feeling is that downloading data from OpenBSD use more "upload data" than on other OS

I originally thought about this issue when I found that using OpenVPN on OpenBSD was limiting my download speed because I was reaching the upload limit of my DSL line, but it was fine on Linux. From there, I've been thinking since then that OpenBSD was using more out data but I never measured anything before.

Testing protocol

Now that I have an OpenBSD router it was easy to make the measures with a match rule and a label. I'll be downloading a specific file from a specific server a few times with each OS, so I'm adding a rule matching this connection.

match proto tcp from 10.42.42.32 to 145.238.169.11 label benchmark

Then, I've been downloading this file three times per OS and resetting counter after each download and saved the results from "pfctl -s labels" command.

OpenBSD comp70.tgz file from an OpenBSD mirror

The variance of each result per OS was very low, I used the average of each columns as the final result per OS.

Raw results

OS        total packets    total bytes    packets OUT    bytes OUT    packets IN    bytes IN
-----     -------------    -----------    -----------    ---------    ----------    --------
OpenBSD   175348           158731602      72068          3824812      10328         154906790
OpenBSD   175770           158789838      72486          3877048      10328         154912790
OpenBSD   176286           158853778      72994          3928988      10329         154924790
Linux     154382           157607418      51118          2724628      10326         154882790
Linux     154192           157596714      50928          2713924      10326         154882790
Linux     153990           157584882      50728          2705092      10326         154879790

About the results

A quick look will show that OpenBSD sent +42% OUT packets compared to Linux and also +42% OUT bytes, meanwhile the OpenBSD/Linux IN bytes ratio is nearly identical (100.02%).

Chart showing the IN and OUT packets of Linux and OpenBSD side by side

Conclusion

I'm not sure what to conclude except that now, I'm sure there is something here requiring investigation.