Výkon

Tutorial OProfile

Tutorial OProfile

OProfile je profilovač výkonu pre Linux. V tomto článku preskúmame, čo robí, ako ho nainštalovať a nakonfigurovať a ako dať údaje, ktoré zostavuje, na použitie.

Možno by vás zaujímalo, prečo by ste potrebovali takýto nástroj, pretože vo väčšine distribúcií systému Linux je predvolene k dispozícii veľa dobrých nástrojov na analýzu výkonu. Každá inštalácia obsahuje nástroje ako top a vmstat a sledovacie nástroje ako strace sú zvyčajne len apt-get away. Kam zapadá OProfile?

Vyššie uvedené nástroje sú vynikajúce na získanie snímky systému Linux v reálnom čase. Nástroje ako top alebo htop zobrazujú všetky spustené procesy, ich aktuálnu spotrebu pamäte a využitie procesora. Ale vedieť, aké procesy a systémové volania spotrebúvajú najviac zdrojov, sa stáva problematickým.

Tam prichádza na rad OProfile. Táto sada nástrojov nielenže vykonáva svoju analýzu na hlbšej úrovni, ale aj ukladá údaje a umožňuje vám vytvárať správy o výkone, ktoré ponúkajú množstvo informácií, ktoré vám pomôžu ladiť aj ten najnepolapiteľnejší problém s výkonom.

OProfile nie je určený iba pre vývojárov. V prostredí počítača vám program OProfile môže pomôcť vystopovať úlohy na pozadí náročné na procesor alebo hovory I / O, ktoré vás brzdia a nie sú okamžite viditeľné. V zaneprázdnenom systéme s posunom priorít procesu môžu byť tieto údaje ťažko zhromažditeľné, nieto ešte interpretované. Vďaka viacprocesovej povahe serverového prostredia je táto úloha s tradičnými nástrojmi ešte zložitejšia.

To znamená, že vývojári nepochybne využijú program OProfile na maximum. Informácie, ktoré uvediem, budú obsahovať základné informácie o obidvoch prípadoch použitia, aby ste sa mohli oboznámiť s metrikami výkonu ľubovoľného programu Linux.

Inštalácia

Je potrebné urobiť veľmi dôležitú poznámku, skôr ako sa ponoríte hlboko do OProfilu - pravdepodobne ho nebudete môcť nainštalovať vo virtualizovanom prostredí. Ak používate systém Linux v prostredí VirtualBox, VMWare alebo podobnom prostredí VM, OProfile nemusí mať prístup k potrebným čítačom výkonu na zhromažďovanie údajov. Ďalej, aj keď ho môžete použiť vo virtuálnom prostredí, presné načasovanie môže byť trochu skreslené na základe zaťaženia hostiteľského systému, takže pokiaľ nepoužívate natívny hardvér, majte to na pamäti.

Niekoľko distribúcií Linuxu má vo svojich systémoch správy balíkov OProfile, čo uľahčuje inštaláciu:

Jednoduchý príklad

Po nainštalovaní programu si namočíme nohy triviálnym, ale užitočným príkladom. Program „ls“ je príkaz, ktorý pravdepodobne používate stále. Jednoducho zobrazí zoznam súborov a priečinkov v aktuálnom adresári. Vystopujme jeho výstup:

sudo operf ls

Uvidíte niečo podobné ako vyššie uvedená snímka obrazovky. Keď je profiler hotový, oznámi „Profilovanie hotové.„Uložilo to údaje do priečinka s názvom oprofile_data, ktorý je možné použiť na generovanie prehľadu.

Spustenie príkazu opreport (v tomto prípade bez sudo) vytvorí správu podobnú tejto:

V tomto príklade predvolená správa zobrazuje počet vzoriek, keď procesor nebol v stave HALT (inými slovami, aktívne niečo robil). Kallsyms poskytuje vyhľadávanie symbolov použitých profilovačom a ld.tak a libc.takže sú súčasťou balíka glibc, spoločnej knižnice prepojenej takmer so všetkými spustiteľnými súbormi systému Linux, ktorá poskytuje základné funkcie, ktoré môžu vývojári použiť, aby zabránili opätovnému objaveniu kola a poskytli všeobecnú úroveň kompatibility medzi rôznymi systémami. Vidíte, že skutočný program je mali oveľa menej času než HALT - väčšinu ťažkého zdvíhania vykonali štandardné knižnice.

Po dokončení správy je vhodné buď odstrániť priečinok s údajmi, alebo ho uložiť na ďalšiu analýzu. V tomto príklade ho iba odstránime, pretože prevádzkujeme ukážkové cvičenia. Pretože sme spustili príkaz pomocou sudo, musíme priečinok odstrániť pomocou sudo. Buď opatrný!

sudo rm -Rf oprofile_data

Zložitejší príklad

V tomto ďalšom príklade spustíme program, ktorý v skutočnosti robí niečo zložitejšie, než len zoznam súborov v aktuálnom priečinku. Stiahnime si WordPress s wget.

sudo operf wget http: // wordpress.org / najnovšie.decht.gz

Po tomto príklade môžeme vygenerovať správu pomocou príkazu „opreport“:

Po tejto aktivite uvidíte oveľa viac aktivity. Príkaz wget musel urobiť veľa práce v zákulisí, aby získal najnovšiu kópiu WordPress. Aj keď nie je potrebné skúmať každú položku, zaujímavé body záujmu sú:

Tento druh údajov môže vývojárovi poskytnúť množstvo informácií. Ako je to však dôležité pre správcu systému servera alebo pokročilého používateľa na pracovnej ploche? Keď vieme, ktoré časti programu zaberajú najviac času CPU, môžeme zistiť, čo je potrebné optimalizovať alebo kde nastáva spomalenie, čo nám umožňuje robiť lepšie rozhodnutia o tom, ako optimalizovať náš systém.

V tomto príklade najviac času CPU zabrali rutiny šifrovania / SSL. Je to pochopiteľné, pretože kryptografia je časovo náročná úloha. Mal wordpress.web spoločnosti org nás nepresmeroval na https: // táto knižnica by sa nepoužila, čo nám šetrí čas CPU. Sieťová vrstva by sa stále používala, ale použitie drôtového pripojenia namiesto bezdrôtového by bolo pravdepodobne menej náročné. Zakázanie indikátora priebehu v programe wget (pomocou prepínača -nv) by ušetrilo čas procesora pri zobrazovaní priebehu sťahovania.

Kopanie do symbolov

Aj keď predvolený prehľad poskytuje cenné a užitočné informácie, môžeme kopať ďalej. Spustením tohto:

opreport --demangle = smart --symboly

Môžeme presne zistiť, koľko funkcií CPU času v knižniciach spotrebuje:

V tomto príklade som použil vyššie uvedený príkaz wget, ale použil som URL http: // (také, ktoré nepresmeruje na https: //) a v stope môžete vidieť absenciu knižníc OpenSSL. Namiesto nového názvu knižnice však máme teraz k dispozícii úplný zoznam funkcií, ktoré sú s tým spojené. Ako vidíte, sieťová vrstva spotrebovala väčšinu času mimo CPU HALT.

Posunieme sa na ďalšiu úroveň

V predchádzajúcich príkladoch sme program OProfile použili na to, aby sme sa pozreli na jeden program po druhom. Celý svoj systém môžete preskúmať naraz pomocou prepínača -systém v celom systéme:

sudo operf - celý systém

Pomocou tejto techniky bude OProfile zhromažďovať štatistické údaje rovnakým spôsobom a zastaví sa, keď stlačíte kombináciu klávesov CTRL + C. Potom môžete spustiť príkaz opreport. Pretože profiler bude pravdepodobne generovať oveľa viac údajov (najmä na desktope alebo zaneprázdnenom serveri).

správa > správa.TXT

Prehľad je teraz možné zobraziť v súbore s názvom prehľad.TXT

Nízka réžia

Je dôležité si uvedomiť, že aj keď by OProfile nemal zasahovať do činnosti vašich programov, vytvorí trochu réžie a spomalí tak vykonávanie. V našich jednoduchých príkladoch vyššie to problém nevytvorilo, ale v programe s dlhým vykonávaním a rozsiahlymi volaniami funkcií si pravdepodobne všimnete rozdiel. Z tohto dôvodu by som neodporúčal používať tento program v prostredí produkčného servera, pokiaľ sa nestretnete s kritickým problémom s výkonom, ktorý sa musí vyriešiť pri živom používaní. Aj potom by som ho použil dosť dlho na nájdenie problému.

Záver

OProfile je výkonný nástroj na profilovanie výkonu. Využíva najnižšiu dostupnú úroveň v systéme Linux a získava počítadlá výkonu a metriky, ktoré vám poskytujú cenné informácie o vašich programoch.

Časy dohadovania ladenia výkonu sú preč - teraz máte právomoc presne vedieť, čo váš systém robí a ako ho vylepšiť. Štúdiom správ generovaných programom OProfile môžete robiť informované rozhodnutia založené na údajoch o optimalizácii vášho systému.

Hry Najlepšie emulátory herných konzol pre systém Linux
Najlepšie emulátory herných konzol pre systém Linux
V tomto článku je uvedený zoznam populárneho softvéru na emuláciu herných konzol, ktorý je k dispozícii pre systém Linux. Emulácia je vrstva kompatibi...
Hry Najlepšie linuxové distribúcie pre hry v roku 2021
Najlepšie linuxové distribúcie pre hry v roku 2021
Operačný systém Linux prešiel dlhou cestou od svojho originálneho, jednoduchého serverového vzhľadu. Tento OS sa za posledné roky nesmierne vylepšil a...
Hry Ako zachytiť a streamovať vašu hernú reláciu v systéme Linux
Ako zachytiť a streamovať vašu hernú reláciu v systéme Linux
V minulosti sa hranie hier považovalo iba za hobby, ale časom došlo v hernom priemysle k obrovskému nárastu z hľadiska technológie i počtu hráčov. Her...