Ono je to mnohem složitější. Důvodů může být hodně. Když jsem se naposled věnoval benchmarkům, tak často stačilo upravit různé volby u samotného jádra OS (některé vyžadovali vlastní kompilaci jádra) a člověk dokázal dojít k výsledkům kde i virtualizovaný OS dosahoval lepších výsledků než základní jádro dané distribuce.
Další problém je v tom jaké přepínače se zvolí pro kompilaci daného programu. To občas dokáže úplně změnit výsledky benchmarku.
Občas je problém i v tom co na daném OS běží v době benchmarku, ale to předpokládám v tomto případě nebyl ten problém.
A v neposlední řadě je potřeba vzít v úvahu, že stále velká část programů je prostě optimalizována pro daný kompilátor.
Zase na druhou stranu, ve FreeBSD máte k dispozici i GCC a maintainer portu může nabízet, nebo i vyžadovat kompilaci přes GCC a provést patřičné optimalizace. Takže minimálně FBSD vs. distro je to vypovídající, jen to neříká nic o tom, jestli to nelze lehce napravit.
Nicméně, taky bych uvítal, kdyby ten test šel víc do hloubky a pokusil se víc objasnit příčinu. Informaci navíc by určitě dalo i jen to, kdyby zařadili do testu kromě FBSD+ZFS i FBSD+UFS.
Tak to sice ano, ale jak píšu, těch problému je víc, a právě použití stejného kompilátoru nemusí nic změnit. Viz. třeba https://www.phoronix.com/scan.php?page=article&item=clear-linux-zen3&num=1 . Kde je krásně vidět rozdíl jenom v tom jak se dané aplikace kompilují (s jakými parametry).
Ono jen použití věcí jako LTO či případně u některých aplikací i PGO a zapnutí podpory SIMD instrukcí dokáže opravdu divy.
Ale na druhou stranu je pravdou to, že přes 90% lidí používá základní nastavení atd. Takže ten test v podstatě dává smysl. Ten koho zajímá maximální výkon si vždy najde cestu jak z daného systému vyždímat maximum.
Jinak ano už jen volba samotného FS je poměrně důležitá. Si pamatuji jak jsem obhajoval svoji bakalářku na téma porovnání výkonu různých ORM a podobných řešení pro různé DBMS. Tenkrát si mě hodně dobírali proč jsme zvolil jako FS BTRFS.
Ten koho zajímá maximální výkon si vždy najde cestu jak z daného systému vyždímat maximum.
Přesně.
V reálu je "výkon" syntézou mnoha faktorů.
Mně překvapil dobrý výsledek v testu u PostgreSQL, protože tam je zrovna největší prostor pro správné nastavení ZFS vs. Postgres. Pochybuji však, že to před testem prováděli. Teď jen fabuluju, resp. toto se mi honí hlavou. Postgres je hodně optimalizovaný k tomu, aby co nejlépe využíval paralelního zpracování a tomu se i přizpůsobuje, co PG umí (neimplementují, dokud to neumějí dobře). Proti tomu v enkódován videa FBS dopadlo špatně. ... Dobrý výsledek v PG mi napovídá, že brzdou asi opravdu nebude jádro samotné, jako spíš to samotné sestavení, což považuji za potěšitelné. Ale není to víc než dojmologie - a nehodlám se tomu věnovat víc. FBSD mi vyhovuje z jiných důvodů a pár jednotek procent ve výkonu vem čert (za tři měsíce nová a levnější CPU překonají to, co dnes vypadá jako "problém").
Slušelo by se uvést, že ten o "19%" lepší výsledek Linuxu je víceméně díky použití triviálního filesystému EXT4, zatímco FreeBSD běžel na robustním ZFS. Dalším faktorem byl zřejmě i zvolený kompilátor.
Pro mě je tedy než ten "bulvární" nadpis mnohem důležitější věta ze závěru původního článku:
But with Ubuntu 20.10 on OpenZFS and Clang, FreeBSD 12.2 was up to 98% the performance of that Ubuntu configuration.