Hlavní navigace

Benchmarky - jedna velká blamáž?

Michal Krause

Jeremy Allison ze Samba týmu krátce po zveřejnění prvních srovnávacích testů Linuxu a NT společnosti Mindcraft prohlásil: "There are three kinds of lies: lies, damn lies, and benchmarks" ("Existují tři druhy lží: lži, úplné lži a benchmarky"). Po několika dalších "objektivních" testech mu musím dát za pravdu.

Myšlenka benchmarkových testů je velice jednoduchá: vezmou se dva produkty, které dělají totéž (nebo skoro totéž) a měří se, jak dlouho jim ten či onen konkrétní úkon bude trvat (případně jiný měřitelný údaj). Bohužel to, co vypadá jednoduše, obvykle vůbec jednoduché není. Měření v laboratorních podmínkách totiž může jenom velice obtížně simulovat reálný provoz a naopak v reálném provozu prakticky nelze mluvit o objektivních podmínkách. Když k tomu připočteme to, že porovnávané subjekty jsou často architektonicky velice odlišné, je zmatek takřka dokonalý.

Domnívám se, že srovnávací testy se bohužel snaží o shrnutí celé škály aspektů do jediného čísla. Ono by sice bylo hrozně krásné, kdyby třeba automobily měly v obchodě čísla – jednička na popojíždění po městě, trojka na dálnici a desítka na závodiště – ale myslím, že je všem jasné, jaký je to nesmysl. Rychlost (a o tu jde obvykle v počítačových testech až v první řadě) je bezpochyby důležitá, ale pořád je to jenom jeden z kamínků, tvořících výslednou mozaiku. Zrovna tak důležité jsou pojmy jako například flexibilita, konfigurovatelnost, cena, nároky a mnoho dalších. Ty jsou sice obvykle zmiňovány a vyzdvihovány v recenzích, ale konkrétně v benchmarkových testech jsou prakticky ignorovány.

Tímto obsáhlým úvodem jsem chtěl pouze naznačit, proč považuji společně s Jeremym benchmarkové testy za blamáž bez jakékoliv vypovídací hodnoty pro uživatele. Přesto nejsou tyto testy naprosto bezcenné, jak by se mohlo po předchozích odstavcích zdát. Mají svůj nemalý význam, ovšem prakticky výhradně pro vývojáře, kterým mohou napovědět, na co se mají při vývoji zaměřit, kde jsou úzká hrdla nebo zda neexistuje lepší přístup k celému problému.

Dále bych se už chtěl věnovat jenom jednomu konkrétnímu benchmarkovému testu, a to konkrétně srovnání Windows NT a Linuxu jako web- a fileserveru, který provedl ve svých laboratořích PC Week. Výsledky tohoto testu najdete zde.
Jak asi víte, testy dopadly poměrně výrazně ve prospěch Windows NT. Bylo poměrně zajímavé sledovat reakce v české linuxové konferenci. Jeden z prvních názoru byl ten, že výsledky by vypadaly jinak, kdyby se použil jiný webserver než Apache, protože ten není multithreadový. Jako alternativa byl doporučen server Zeus, který je údajně nejrychlejším webserverem pro Linux (ovšem není zdarma), případně AOLserver. Osobně však s tímto postojem nesouhlasím, protože je poměrně logické, že byla použita nejrozšířenější kombinace a navíc i pro NT by se možná dal najít výkonnější webserver.
Další postřeh byl už poněkud věcnější. Poukazoval na to, že Apache je optimalizován hlavně na větší množství pomalých spojení, což více odpovídá reálnému provozu. Tohle je samozřejmě přesně to, o čem jsem psal v úvodu – neexistuje žádná absolutní číselná hodnota, která by umožňovala měřit kvalitu produktu.

Proto považuji za největší klad tohoto testu to, že poukázal na jedno úzké hrdlo v jádře. Jde o kód okolo IP stacku, bohužel o tom nemohu lépe referovat, neboť bych se nerad dopustil technických chyb. Potěšující je, že tento problém je odstraněn již v jádrech vývojové řady 2.3.x.
Podobně i vývojáři Apache a Samby se díky testu dozvěděli, kde lze výkon posílit, což, jak jistě uznáte, bude přínosem pro nás všechny.

Co tedy říci závěrem? Berte benchmarkové testy s velkou rezervou a při hodnocení produktu nebo řešení se zaměřte na celkové zhodnocení všech klíčových aspektů s důrazem na vlastnosti, které jsou důležité pro váš konkrétní úkol. Při výběru čehokoliv doporučuji konzultaci s někým, kdo má praktické zkušenosti a můžete mu věřit (což není prodavač v obchodě :)

P.S. Všechny, kteří by mě chtěli napadnout, že zpochybňuji benchmarkové testy v okamžiku, kdy v nich dopadl Linux špatně, upozorňuji, že mohu nabídnout minimálně tři srovnávací testy, kde Linux zvítězil, ať už absolutně nebo v některých oblastech. Na svém vztahu k benchmarkům ale trvám a tak je nemíním používat jako argumenty.

Našli jste v článku chybu?