Výkon

OProfile Tutorial

OProfile Tutorial

OProfile je profil výkonu pro Linux. V tomto článku prozkoumáme, co dělá, jak jej nainstalovat a nakonfigurovat a jak dát data, která sestavuje, k použití.

Možná se divíte, proč byste potřebovali takový nástroj, protože ve většině distribucí Linuxu je ve výchozím nastavení k dispozici spousta dobrých nástrojů pro analýzu výkonu. Každá instalace obsahuje nástroje jako top a vmstat a sledovací nástroje jako strace jsou obvykle jen apt-get away. Kam se OProfile vejde?

Výše zmíněné nástroje jsou vynikající při získávání snímků systému Linux v reálném čase. Nástroje jako top nebo htop zobrazují všechny spuštěné procesy, jejich aktuální spotřebu paměti a využití procesoru. Ale vědět, jaké procesy a systémová volání spotřebovávají nejvíce zdrojů, se stává problematickým.

To je místo, kde přichází OProfile. Tato sada nástrojů nejen provádí analýzu na hlubší úrovni, ale také ukládá data a umožňuje vám vytvářet zprávy o výkonu, které nabízejí nepřeberné množství informací, které vám pomohou ladit i ten nejnepolapitelnější problém s výkonem.

OProfile není jen pro vývojáře. V desktopovém prostředí vám OProfile může pomoci sledovat úlohy na pozadí náročné na CPU nebo I / O volání, které vás zpomalují a nejsou okamžitě patrné. V rušném systému s posunem priorit procesu může být obtížné tato data shromáždit, natož interpretovat. Díky víceprocesové povaze prostředí serveru je tento úkol u tradičních nástrojů ještě obtížnější.

To znamená, že vývojáři bezpochyby využijí OProfile na maximum. Informace, které uvedu, pokryjí základy obou případů použití, takže se můžete pustit do metrik výkonu jakéhokoli programu Linux.

Instalace

Je třeba udělat velmi důležitou poznámku, než se ponořit hlouběji do OProfilu - možná jej nebudete moci nainstalovat ve virtualizovaném prostředí. Pokud používáte Linux uvnitř prostředí VirtualBox, VMWare nebo podobného virtuálního počítače, OProfile nemusí mít přístup k potřebným čítačům výkonu ke shromažďování dat. Navíc, i když jej můžete použít ve virtuálním prostředí, přesné načasování může být poněkud zkresleno na základě zatížení hostitelského systému, takže mějte na paměti, pokud nepoužíváte nativní hardware.

Několik distribucí Linuxu má ve svých systémech správy balíků OProfile, což usnadňuje instalaci:

Jednoduchý příklad

Jakmile je program nainstalován, pojďme si promočit nohy triviálním, ale užitečným příkladem. Program „ls“ je příkaz, který pravděpodobně používáte stále. Jednoduše zobrazí seznam souborů a složek v aktuálním adresáři. Vystopujme jeho výstup:

sudo operf ls

Uvidíte něco podobného jako na výše uvedeném snímku obrazovky. Jakmile je profiler hotový, oznámí „Profilování hotovo.„Uložila svá data do složky s názvem oprofile_data, kterou lze použít ke generování zprávy.

Spuštění příkazu opreport (v tomto případě bez sudo) vytvoří zprávu podobnou této:

V tomto příkladu výchozí zpráva zobrazuje počet vzorků, když CPU nebyla ve stavu HALT (jinými slovy, aktivně něco dělala). Kallsyms poskytuje vyhledávání symbolů používané profilerem a ld.tak a libc.takže jsou součástí balíčku glibc, společné knihovny propojené téměř se všemi spustitelnými soubory systému Linux, které poskytují základní funkce, které mohou vývojáři použít, aby zabránili novému vývoji kola a poskytli obecnou úroveň kompatibility mezi různými systémy. Vidíte, že skutečný program je měl mnohem méně času než HALT - většinu těžkého zvedání prováděly standardní knihovny.

Jakmile jsme se zprávou hotovi, je vhodné buď odstranit složku s daty, nebo ji uložit pro budoucí analýzu. V tomto příkladu to odstraníme, protože používáme ukázková cvičení. Protože jsme spustili příkaz pomocí sudo, musíme složku odstranit pomocí sudo. Buď opatrný!

sudo rm -Rf oprofile_data

Složitější příklad

V tomto dalším příkladu spustíme program, který ve skutečnosti dělá něco složitějšího, než jen seznam souborů v aktuální složce. Stáhněte si WordPress s wget.

sudo operf wget http: // wordpress.org / nejnovější.dehet.gz

Po tomto příkladu můžeme vygenerovat zprávu pomocí příkazu „opreport“:

Po této akci uvidíte mnohem více aktivit. Příkaz wget musel udělat spoustu práce v zákulisí, aby získal nejnovější kopii WordPress. Ačkoli není nutné každou položku zkoumat, zajímavými body zájmu jsou:

Tento druh dat může vývojáři poskytnout spoustu informací. Jak je to ale důležité pro správce systému serveru nebo zkušeného uživatele na ploše? Když víme, které části programu zabírají nejvíce času CPU, můžeme zjistit, co je potřeba optimalizovat nebo kde dochází ke zpomalení, což nám umožňuje lépe se rozhodovat o tom, jak optimalizovat náš systém.

V tomto příkladu nejvíce času CPU zabraly rutiny krypto / SSL. To je pochopitelné, protože kryptografie je časově náročný úkol. Měl wordpress.web org nás nepřesměroval na https: // tato knihovna by nebyla použita, což nám šetří čas CPU. Síťová vrstva by se stále používala, ale použití kabelového připojení místo bezdrátového by pravděpodobně bylo méně zdanitelné. Zakázání indikátoru průběhu v programu wget (pomocí přepínače -nv) by ušetřilo čas CPU při zobrazování průběhu stahování.

Kopat do symbolů

I když výchozí přehled poskytuje cenné a užitečné informace, můžeme kopat dále. Spuštěním tohoto:

opreport --demangle = smart --symboly

Můžeme přesně zjistit, kolik času CPU v knihovnách spotřebovalo:

V tomto příkladu jsem použil výše uvedený příkaz wget, ale použil jsem URL http: // (ten, který nepřesměrovává na https: //) a ve stopě můžete vidět nepřítomnost knihoven OpenSSL. Namísto pouhého názvu knihovny však nyní máme úplný seznam příslušných funkcí. Jak vidíte, síťová vrstva spotřebovávala většinu času mimo HALT CPU.

Posun na další úroveň

V předchozích příkladech jsme použili OProfile, abychom se podívali na jeden program najednou. Celý svůj systém můžete zkontrolovat najednou pomocí přepínače -system-wide:

sudo operf - celý systém

Pomocí této techniky bude OProfile shromažďovat statistiky stejným způsobem a zastaví se, když stisknete kombinaci kláves CTRL + C. Poté můžete spustit příkaz opreport. Vzhledem k tomu, že profiler pravděpodobně vygeneruje mnohem více dat (zejména na počítači nebo zaneprázdněném serveru).

hlášení & gt; zpráva.txt

Přehled je nyní možné zobrazit v souboru s názvem report.txt

Nízká režie

Je důležité si uvědomit, že i když by OProfile neměl zasahovat do provozu vašich programů, vytvoří trochu režie a tím zpomalí provádění. V našich jednoduchých příkladech výše to nevytvořilo problém, ale v programu s dlouhým prováděním a rozsáhlými voláními funkcí si pravděpodobně všimnete rozdílu. Z tohoto důvodu bych nedoporučoval používat tento program v prostředí produkčního serveru, pokud se nevyskytne kritický problém s výkonem, který musí být vyřešen za provozu. Dokonce i tehdy bych to použil jen tak dlouho, abych problém našel.

Závěr

OProfile je výkonný nástroj pro profilování výkonu. Využívá nejnižší úrovně dostupné v systému Linux, aby získal čítače výkonu a metriky, které vám poskytnou cenné informace o vašich programech.

Časy dohadování ladění výkonu jsou pryč - nyní máte moc přesně vědět, co váš systém dělá a jak ho vylepšit. Studiem zpráv generovaných programem OProfile můžete přijímat informovaná rozhodnutí založená na datech o optimalizaci vašeho systému.

Ovládejte a spravujte pohyb myši mezi více monitory ve Windows 10
Správce myší se dvěma displeji umožňuje ovládat a konfigurovat pohyb myši mezi více monitory zpomalením jeho pohybů poblíž hranice. Windows 10/8 vám u...
WinMouse vám umožňuje přizpůsobit a vylepšit pohyb ukazatele myši na PC s Windows
Chcete-li vylepšit výchozí funkce ukazatele myši, použijte freeware WinMouse. Přidává další funkce, které vám pomohou vytěžit ze své skromné ​​myši ma...
V systému Windows 10 nefunguje levé tlačítko myši
Pokud používáte speciální myš s notebookem nebo stolním počítačem, ale levé tlačítko myši nefunguje ve Windows 10/8/7 z nějakého důvodu uvádíme několi...