Hlavní navigace

Jak rychlý je váš počítač

Miroslav Petříček 5. 9. 2001

Dnešní článek se zabývá měřením rychlosti počítače v Linuxu. Ukážeme si některé z programů používaných pro stanovení výkonu procesoru.

Kompilace jádra

Nejklasičtějším benchmarkem, který se v Linuxu používá, je test kompilace jádra. Jeho výstupem je doba, za kterou překladač zkompiluje a sestaví jádro Linuxu. Čím je tedy výstupní čas menší, tím je testovaný počítač rychlejší. Úloha je silně závislá na výkonu procesoru, velký vliv má také rychlost disku a operační paměti. Nejedná se o syntetickou (umělou) úlohu, takže naměřený čas poměrně přesně vypovídá o rychlosti testovaného počítače.

Měření doby kompilace jádra se provádí následujícím způsobem:

  • Nainstalují se zdrojové kódy jádra (typicky do adresáře /usr/src/linux
  • Provede se defaultní nastavení překládaných komponent:
    make oldconfig
  • Pomocí příkazu time se změří doba běhu překladu, např.:
    time make bzImage

    jehož výstupem je čas, například:

    real    11m59.630s
    user    11m11.330s
    sys      0m48.240s
    Uvedený výstup nám sděluje, že vykonání zadaného příkazu trvalo 11'59" skutečného času, z nichž 11'11" strávil program prováděním svého vlastního kódu a 48" běžel v režimu jádra. Pomocí příkazu time můžeme efektivně měřit dobu vykonání libovolného programu.

Aby bylo možné měřené hodnoty porovnávat, je vhodné mít na zřeteli několik skutečností.

  • Porovnávat lze jen časy dosažené se stejnými kompilačními volbami na stejných verzích jader. Různé verze obsahují jiný kód, jehož kompilace trvá jinou dobu.
  • Používejte stejné verze kompilátoru, protože některé překladače mohou kompilovat rychleji, jiné pomaleji. Používanou verzi zjistíte pomocí příkazu:
    cc -v
  • Během překládání by nemělo běžet příliš mnoho programů, které by mohly zkreslit výsledek. Ideální podmínky pro měření poskytuje čerstvě nastartovaný počítač bez grafického prostředí s minimem běžících úloh.
  • Při opakovaných testech je nutné vyčistit adresář s jádrem voláním příkazu
    make mrproper
    , neboť příkaz make normálně překládá pouze soubory, které se od poslední kompilace změnily. Také je dobré zvážit, zda není vhodnější při opakovaných měřeních restartovat počítač, aby se vyloučilo riziko, že výsledek zkreslí přítomnost dat v cache.
  • Pro testování víceprocesorového počítače je nejlépe spouštět překládání paralelně pomocí direktivy „-jN“ příkazu make. N je počet threadů, do kterých bude překládání rozděleno. Udává se, že ideální hodnota N je počet procesorů + 1, a to i na jednoprocesorových počítačích.

ubench

ubench je malý program, který může být použit k porovnání výkonu procesoru a paměti. Jeho výhodou je podpora SMP a deklarovaná platformní nezávislost, takže jej můžete použít třeba k porovnání rychlosti šestiprocesorového Sun serveru se Solarisem a vašeho linuxového desktopu s Celeronem. Nevýhodou programu je malá stabilita výsledků – třemi testy jsem dospěl ke třem různým, byť podobným výsledkům.

Program si nejprve přeložíte pomocí příkazu make. Potom jej můžete spustit příkazem ubench, běh trvá asi šest minut, přičemž nejprve se (prováděním matematických výpočtů) měří výkon vlastního procesoru, poté paměti (alokace, kopírování bloků atd.). Výsledkem jsou dva indexy, které lze porovnávat. Výstup může vypadat nějak takto:

Unix Benchmark Utility v.0.3
Copyright (C) July, 1999 PhysTech, Inc.
Linux 2.4.3-12smp #1 SMP Fri Jun 8 14:38:50 EDT 2001 i686
Ubench CPU:    36915
Ubench MEM:    57678
--------------------
Ubench AVG:    47296

Program ubench najdete na této adrese. Na stejném místě naleznete také žebříček indexů, které autorovi posílají uživatelé programu.

BogoMIPS

Hodnota BogoMIPS je počet prázdných smyček, které procesor počítače vykoná za jednu sekundu. O výkonu toho napoví jen málo. Díky tomu, že je test všudypřítomný (vykonává se při každém startu jádra), můžeme ho použít k hrubému (velmi hrubému) porovnávání rychlosti procesoru. Jádro používá BogoMIPS ke kalibraci čekací smyčky.

Hodnotu BogoMIPS zjistíme např. takto:

$ dmesg | grep mips
Calibrating delay loop... 466.94 BogoMIPS

Více se o BogoMIPSech dočtete například tady.

nbench

Program nbench je dalším klasickým syntetickým benchmarkem. Jeho původcem je americký papírový časopis Byte, který jej svého času používal k testování počítačů. Po zveřejnění zdrojových kódů byl upraven pro práci v Linuxu.

Program měří výkon procesoru pomocí deseti matematických úloh, které mají svůj základ v praxi. Provádí například numerické třídění, kompresi, šifrování, simulaci neurální sítě, výpočet fourierových koeficientů apod. Úlohy jsou rozděleny podle své orientace na výpočty s pevnou a plovoucí desetinnou čárkou. Jejich podrobný popis je součástí dokumentace, stejně tak i jejich zdrojový kód je velice dobře komentován.

Výkonnost určitého počítače je reprezentována počtem provedených iterací v čase, který je přepočítán na výkonnostní index relativně k rychlosti počítače s procesorem Pentium 90. Současné verze programu udávají navíc ještě index vůči AMD K6/233. Program se snaží prezentovat i originální indexy Bytemark. Určitým nedostatkem je omezení na jeden procesor, takže SMP počítače vykazují stejný výkon jako UP. Naopak příznivě je nutné hodnotit stabilitu výsledků.

Program, stejně jako obsáhlou databázi provnávacích výsledků, si můžete stáhnout tady.

Našli jste v článku chybu?

5. 9. 2001 12:23

Jirka (neregistrovaný)

Myslím, že zdaleka nejdůležitější a nejstandardnější benchmark je Linpack (alespon při použití počítačů na počítání...). Je založen na měření času při LU dekompozici matice. Databáze výsledků a popis je například na adrese http://www.top500.org .

5. 9. 2001 9:04

Milan Kopacka (neregistrovaný)

Od 2.2.14 se vypocet BogoMIPsu provadi za trochu jinych podminek a na nekterych procesorech se to projevilo zdvojnasobenim hodnoty BogoMIPSu (Viz BogoMIPS mini HOWTO). Neni to take Vas pripad?

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

120na80.cz: Rakovina oka. Jak ji poznáte?

Rakovina oka. Jak ji poznáte?

Vitalia.cz: Nestlé vyvinula nový typ „netloustnoucího“ cukru

Nestlé vyvinula nový typ „netloustnoucího“ cukru

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Root.cz: Vypadl Google a rozbilo se toho hodně

Vypadl Google a rozbilo se toho hodně

Podnikatel.cz: Babiš: E-shopy z EET možná vyjmeme

Babiš: E-shopy z EET možná vyjmeme

DigiZone.cz: ČT má dalšího zástupce v EBU

ČT má dalšího zástupce v EBU

Vitalia.cz: Znáte „černý detox“? Ani to nezkoušejte

Znáte „černý detox“? Ani to nezkoušejte

DigiZone.cz: Flix TV má set-top box s HEVC

Flix TV má set-top box s HEVC

Podnikatel.cz: Na poslední chvíli šokuje výjimkami v EET

Na poslední chvíli šokuje výjimkami v EET

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

DigiZone.cz: Rádio Šlágr má licenci pro digi vysílání

Rádio Šlágr má licenci pro digi vysílání

DigiZone.cz: Sony KD-55XD8005 s Android 6.0

Sony KD-55XD8005 s Android 6.0

Vitalia.cz: To není kašel! Správná diagnóza zachrání život

To není kašel! Správná diagnóza zachrání život

Vitalia.cz: Dáte si jahody s plísní?

Dáte si jahody s plísní?

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

Podnikatel.cz: Babiše přesvědčila 89letá podnikatelka?!

Babiše přesvědčila 89letá podnikatelka?!

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA