Comment by atmosx

5 hours ago

> Is there anything FreeBSD can do that, say, Debian cannot?

Yes. Emulate traffic latency using IPFW and dummynet[^1]. There is no Linux (or OpenBSD, NetBSD) counterpart.

The ZFS implementation is less buggy.

[^1]: https://man.freebsd.org/cgi/man.cgi?dummynet

That is not really accurate? Linux traffic control (tc, [0]) exists since Kernel 2.2. It can introduce traffic latency and a few other network conditions, like packet loss.

[0]: https://www.man7.org/linux/man-pages/man8/tc.8.html

  • Hmm kind of... I was referring to the fact that dummynet models pipes with a fixed bandwidth and centralized scheduler. Packets are released according to very high precision transmission timing. This means that serialization delay, queue buildup, and link behavior are simulated in a way that resembles real network conditions. Dummynet can provide a highly deterministic timing and queue behavior, which made it popular in networking research and WAN emulation experiments. TC cannot do that with the same accuracy.

    I think much like other tools, think SELinux vs OpenBSD (unveil, etc) TC is more flexible (does more things) but there are _some things_ that can't do, and even for things both can do *BSD solutions are much simpler.

> The ZFS implementation is less buggy.

FreeBSD and Linux have been using the same implementation of ZFS for years.

  • AFAIK the most common is ARC but there are other areas as well.

    On Linux, ARC memory is reclaimed using the kernel shrinker API which has historically been a problem. There has been several bugs leading to OOMs or system freeze due to high memory usage on systems that use ARC heavily.

    On FreeBSD ARC is integrated directly with the VM subsystem. The stack is simpler, less bug-prone.

    Now this is not a ZFS algo/whatever problem. It's an implementation/subsystem issue but it's still something to keep an eye on for the ZFS admin.

    ps. I'm using ZFS on Linux for 15 years on a self-hosted, home backup server and only once I've had mem issues leading to crashes when I misconfigured the ARC. So it's fairly _stable_ but still not FreeBSD-level stable.