Izvedba

Vadnica za OProfile

Vadnica za OProfile

OProfile je profilirnik zmogljivosti za Linux. V tem članku bomo raziskali, kaj počne, kako ga namestiti in konfigurirati ter kako uporabiti podatke, ki jih sestavi.

Morda se sprašujete, zakaj bi potrebovali takšno orodje, saj je v večini distribucij Linuxa privzeto na voljo veliko orodij za analizo uspešnosti. Vsaka namestitev vključuje orodja, kot sta top in vmstat, pripomočki za sledenje, kot je strace, pa so ponavadi le pobeg. Kam spada OProfile?

Prej omenjena orodja so odlična za posnetek trenutnega posnetka sistema Linux v realnem času. Orodja, kot sta top ali htop, prikazujejo vse tekoče procese, trenutno porabo pomnilnika in uporabo procesorja. Toda vedeti, kateri procesi in sistemski klici porabijo največ virov, postane problematično.

Tu pride OProfile. Ta pripomoček ne samo, da analizira globlje, temveč tudi prihrani podatke in vam omogoča pripravo poročil o uspešnosti, ki ponujajo veliko informacij, ki vam lahko pomagajo pri odpravljanju napak tudi pri najtežji težavi.

OProfile ni namenjen samo razvijalcem. V namiznem okolju vam OProfile lahko pomaga izslediti CPU-intenzivna opravila v ozadju ali I / O klice, ki vas upočasnijo in niso takoj vidni. V zasedenem sistemu s spreminjanjem prednostnih nalog procesa je te podatke težko zbrati, kaj šele razlagati. Večprocesna narava strežniškega okolja s tradicionalnimi orodji to nalogo še oteži.

Kljub temu bodo razvijalci OProfile brez dvoma kar najbolje izkoristili. Podatki, ki jih bom predstavil, bodo zajemali osnove obeh primerov uporabe, tako da lahko poglobite v meritve uspešnosti katerega koli programa Linux.

Namestitev

Obstaja zelo pomembna opomba, ki jo morate zapisati, preden se globoko potopite v OProfile - morda ga ne boste mogli namestiti v virtualizirano okolje. Če Linux uporabljate v okolju VirtualBox, VMWare ali podobnem okolju VM, OProfile morda ne bo mogel dostopati do potrebnih števcev zmogljivosti za zbiranje podatkov. Poleg tega, tudi če ga lahko uporabljate v navideznem okolju, je lahko natančen čas nekoliko popačen glede na obremenitev gostiteljskega sistema, zato upoštevajte to, če ne uporabljate izvorne strojne opreme.

Številne distribucije Linuxa imajo v svojih sistemih za upravljanje paketov OProfile, kar olajša namestitev:

Preprost primer

Ko je program nameščen, si namočimo noge s trivialnim, a uporabnim primerom. Program "ls" je ukaz, ki ga verjetno uporabljate ves čas. Preprosto prikaže seznam datotek in map v trenutnem imeniku. Sledimo njegovemu izhodu:

sudo operf ls

Videli boste nekaj podobnega zgornjemu posnetku zaslona. Ko bo profiler končan, bo objavil »Profiliranje končano.”Svoje podatke je shranil v mapo z imenom oprofile_data, ki jo lahko uporabimo za ustvarjanje poročila.

Zagon ukaza opreport (v tem primeru brez sudo) ustvari poročilo, podobno temu:

V tem primeru privzeto poročilo prikazuje število vzorcev, ko CPU ni bil v stanju HALT (z drugimi besedami, je aktivno kaj počel). Kallsyms ponuja iskanje simbolov, ki ga uporablja profiler, in ld.tako in libc.tako tudi del paketa glibc, skupne knjižnice, povezane v skoraj vse izvršljive datoteke Linuxa, ki ponuja osnovne funkcije, ki jih lahko uporabljajo razvijalci, da ne bi znova izumili kolesa in zagotovili splošno raven združljivosti med različnimi sistemi. Vidite, da je dejanski program ls imeli veliko manj časa, ki ni bil HALT - večji del težkega dela so opravile standardne knjižnice.

Ko končamo s poročilom, je dobro odstraniti mapo s podatki ali jo shraniti za prihodnjo analizo. V tem primeru ga bomo samo odstranili, saj izvajamo vzorčne vaje. Ker smo ukaz zagnali s sudo, moramo mapo s sudo odstraniti. Bodi previden!

sudo rm -Rf oprofile_data

Kompleksnejši primer

V naslednjem primeru bomo zagnali program, ki dejansko naredi nekaj bolj zapletenega kot samo seznam datotek v trenutni mapi. Naložimo WordPress z wgetom.

sudo operf wget http: // wordpress.org / najnovejše.katran.gz

Po tem primeru lahko z ukazom „opreport“ ustvarimo poročilo:

Po tej boste videli veliko več dejavnosti. Ukaz wget je moral veliko delati v zakulisju, da je dobil najnovejšo kopijo WordPressa. Čeprav ni treba preučevati vsakega predmeta, so zanimive točke:

Tovrstni podatki lahko razvijalcu dajo veliko informacij. Kako pa je to pomembno za sistemskega skrbnika strežnika ali izkušenega uporabnika na namizju? Če vemo, kateri deli programa si vzamejo največ procesorskega časa, lahko ugotovimo, kaj potrebujemo za optimizacijo ali kje pride do upočasnitve, kar nam omogoča boljše odločitve o tem, kako optimizirati naš sistem.

V tem primeru so največ procesorskega časa vzele kripto / SSL rutine. To je razumljivo, ker je kriptografija dolgotrajna naloga. Imel sem wordpress.spletna stran org nas ni preusmerila na https: // ta knjižnica ne bi bila uporabljena, kar nam prihrani procesorski čas. Omrežni sloj bi bil še vedno uporabljen, vendar bi bila uporaba žične povezave namesto brezžične povezave verjetno manj obdavčljiva. Če onemogočite indikator napredka v programu wget (prek stikala -nv), bi prihranili čas procesorja pri prikazu poteka prenosa.

Kopanje v simbole

Čeprav privzeto poročilo vsebuje dragocene in koristne informacije, lahko poiščemo še več. Če zaženete to:

opreport --demangle = smart --symbols

Natančno lahko ugotovimo, koliko procesorskega časa deluje v porabljenih knjižnicah:

V tem primeru sem uporabil zgornji ukaz wget, vendar sem uporabil URL http: // (tisti, ki ne preusmeri na https: //), v sledovih pa lahko vidite odsotnost knjižnic OpenSSL. Namesto imena knjižnice pa imamo zdaj celoten seznam vključenih funkcij. Kot lahko vidite, je omrežna plast porabila večino časa CPU ne-HALT.

Pomik na naslednjo stopnjo

V prejšnjih primerih smo uporabili OProfile za ogled enega programa naenkrat. Celoten sistem lahko hkrati pregledate s stikalom za celoten sistem:

sudo operf - v celotnem sistemu

Z uporabo te tehnike bo OProfile na enak način zbiral statistične podatke in se ustavil, ko pritisnete CTRL + C. Nato lahko zaženete ukaz opreport. Ker bo profiler verjetno ustvaril veliko več podatkov (zlasti na namizju ali zasedenem strežniku).

opreport & gt; poročilo.txt

Poročilo je zdaj mogoče videti v datoteki, ki se imenuje poročilo.txt

Nizka režija

Pomembno je vedeti, da čeprav OProfile ne bi smel ovirati delovanja vaših programov, bo ustvaril nekoliko dodatnih stroškov in s tem upočasnil izvajanje. V naših preprostih primerih zgoraj to ni povzročalo težav, toda pri programu z dolgim ​​izvajanjem in obsežnimi klici funkcij boste verjetno opazili razliko. Zaradi tega ne bi priporočal uporabe tega programa v okolju delovnega strežnika, razen če se ne soočamo s kritično težavo z zmogljivostjo, ki jo je treba rešiti z uporabo v živo. Tudi takrat bi ga uporabljal ravno toliko časa, da bi našel težavo.

Zaključek

OProfile je močno orodje za profiliranje zmogljivosti. Dotakne se najnižje ravni, ki je na voljo v Linuxu, da dobi števce uspešnosti in meritve, ki vam dajejo dragocene informacije o vaših programih.

Časi ugibanj pri razhroščevanju zmogljivosti so minili - zdaj imate moč natančno vedeti, kaj počne vaš sistem in kako ga izboljšati. S preučevanjem poročil, ki jih ustvari OProfile, lahko na podlagi podatkov temeljijo na odločitvah o optimizaciji vašega sistema.

Posnemajte klike miške tako, da v Windows 10 lebdite z miško Clickless Mouse
Uporaba miške ali tipkovnice v napačni drži čezmerne uporabe lahko povzroči veliko zdravstvenih težav, vključno s sevom, sindromom karpalnega kanala i...
S temi brezplačnimi orodji dodajte gibe miške v sistem Windows 10
V zadnjih letih so se računalniki in operacijski sistemi močno razvili. Včasih so morali uporabniki uporabljati ukaze za krmarjenje po upraviteljih da...
Nadzirajte in upravljajte gibanje miške med več monitorji v sistemu Windows 10
Upravitelj miške z dvojnim zaslonom vam omogoča nadzor in konfiguriranje gibanja miške med več monitorji, tako da upočasni gibanje blizu meje. Windows...