Spektaklis

„OProfile“ mokymo programa

„OProfile“ mokymo programa

„OProfile“ yra „Linux“ našumo analizatorius. Šiame straipsnyje mes išnagrinėsime, ką jis veikia, kaip jį įdiegti ir konfigūruoti bei kaip panaudoti surinktus duomenis.

Jums gali kilti klausimas, kodėl jums reikia tokio įrankio, nes daugumoje „Linux“ distribucijų pagal numatytuosius nustatymus yra daugybė gerų našumo analizės įrankių. Kiekvienas diegimas apima tokius įrankius kaip „top“ ir „vmstat“, o tokių programų kaip „strace“ atsekimas paprastai yra tik apt-get away. Kur dera „OProfile“?

Anksčiau minėti įrankiai puikiai padeda realiuoju laiku gauti „Linux“ sistemos vaizdą. Tokie įrankiai kaip „top“ arba „htop“ rodo visus vykstančius procesus, jų dabartinę atminties sąnaudas ir procesoriaus naudojimą. Tačiau žinoti, kokie procesai ir sistemos skambučiai sunaudoja daugiausia išteklių, tampa problematiška.

Štai kur atsiranda „OProfile“. Šis įrankių rinkinys ne tik atlieka analizę gilesniu lygiu, bet ir taupo duomenis bei leidžia kurti našumo ataskaitas, kuriose pateikiama daugybė informacijos, kuri gali padėti derinti net ir sunkiausiai pastebimą našumo problemą.

„OProfile“ nėra skirtas tik kūrėjams. Darbalaukio aplinkoje „OProfile“ gali padėti susekti daug procesoriaus reikalaujančias fono užduotis arba įvesties / išvesties skambučius, kurie lėtina jūsų darbą ir nėra akivaizdūs iš karto. Užimtoje sistemoje, kurioje keičiasi proceso prioritetai, šiuos duomenis gali būti sunku rinkti, jau nekalbant apie interpretavimą. Serverio aplinkos daugiaprocesiškumas dar labiau apsunkina šią užduotį naudojant tradicinius įrankius.

Be to, kūrėjai, be abejo, maksimaliai išnaudos „OProfile“. Pateikta informacija apims abiejų naudojimo atvejų pagrindus, kad galėtumėte įsigilinti į bet kurios „Linux“ programos veiklos metriką.

Montavimas

Yra labai svarbi pastaba, kurią reikia padaryti prieš giliai neriant į „OProfile“ - gali nepavykti jos įdiegti virtualizuotoje aplinkoje. Jei „Linux“ naudojate „VirtualBox“, „VMWare“ ar panašioje VM aplinkoje, „OProfile“ gali nepavykti pasiekti reikiamų našumo skaitiklių duomenims rinkti. Be to, net jei jūs galite jį naudoti virtualioje aplinkoje, tikslus laikas gali būti šiek tiek iškraipytas, atsižvelgiant į pagrindinės sistemos apkrovą, todėl nepamirškite to nepamiršti, jei neveikiate su gimtąja aparatine įranga.

Kelių „Linux“ distribucijų paketų valdymo sistemose yra „OProfile“, todėl lengva įdiegti:

Paprastas pavyzdys

Įdiegę programą, sušlapinkime kojas, pateikdami nereikšmingą, tačiau naudingą pavyzdį. Programa „ls“ yra komanda, kurią tikriausiai naudojate nuolat. Tai tiesiog rodo failų ir aplankų sąrašą dabartiniame kataloge. Pasekime jo išvestį:

sudo operf ls

Pamatysite kažką panašaus į aukščiau pateiktą ekrano kopiją. Baigęs profilį, jis paskelbs „Profiliavimas atliktas.„Jis išsaugojo savo duomenis aplanke, vadinamame oprofile_data, kuris gali būti naudojamas ataskaitai generuoti.

Paleidus komandą opreport (šiuo atveju be „sudo“), gaunama panaši ataskaita:

Šiame pavyzdyje numatytojoje ataskaitoje parodomas pavyzdžių skaičius, kai procesorius nebuvo HALT būsenos (kitaip tariant, aktyviai kažką darė). „Kallsyms“ pateikia simbolių paiešką, kurią naudoja profilininkas, ir ld.taip ir libc.tai yra „glibc“ paketo dalis, bendra biblioteka, susieta su beveik visais „Linux“ vykdomaisiais failais, kuri suteikia pagrindines funkcijas, kurias kūrėjai gali naudoti, kad neišradinėtų rato ir užtikrintų bendrą įvairių sistemų suderinamumo lygį. Galite pamatyti, kad tikroji programa ls turėjo kur kas mažiau ne HALT laiko - didžiąją dalį sunkaus kėlimo atliko standartinės bibliotekos.

Kai atliksime ataskaitą, verta pašalinti duomenų aplanką arba išsaugoti jį būsimai analizei. Šiame pavyzdyje mes jį tiesiog pašalinsime, nes vykdome pavyzdinius pratimus. Kadangi vykdėme komandą naudodami sudo, turime pašalinti aplanką su sudo. Būk atsargus!

sudo rm -Rf oprofile_data

Sudėtingesnis pavyzdys

Šiame kitame pavyzdyje vykdysime programą, kuri iš tikrųjų daro kažką sudėtingesnio, nei tik pateikia failus dabartiniame aplanke. Atsisiųskime „WordPress“ su „wget“.

sudo operf wget http: // wordpress.org / naujausias.degutas.gz

Po šio pavyzdžio galime sukurti ataskaitą naudodami komandą „opreport“:

Po šio pamatysite daug daugiau veiklos. Komanda „wget“ turėjo atlikti daugybę užkulisių, kad gautų naujausią „WordPress“ kopiją. Nors nebūtina nagrinėti kiekvieno elemento, įdomūs yra šie dalykai:

Tokie duomenys gali suteikti daug informacijos kūrėjui. Bet kaip tai svarbu serverio sistemos administratoriui arba energijos vartotojui darbalaukyje? Žinodami, kurios programos dalys užima daugiausiai procesoriaus laiko, galime sužinoti, ką reikia optimizuoti arba kur vyksta sulėtėjimas, leidžiant mums priimti geresnius sprendimus, kaip optimizuoti savo sistemą.

Šiame pavyzdyje daugiausiai procesoriaus laiko užėmė kriptografinė / SSL tvarka. Tai suprantama, nes kriptografija yra daug laiko reikalaujanti užduotis. Turėjo wordpress.org svetainė nenukreipė mūsų į https: // ši biblioteka nebūtų naudojama, taupant procesoriaus laiką. Tinklo sluoksnis vis tiek būtų buvęs naudojamas, tačiau naudojimasis laidiniu ryšiu vietoj belaidžio ryšio greičiausiai būtų mažiau apmokestinamas. Išjungus pažangos indikatorių wget programoje (per -nv jungiklį), būtų sutaupyta procesoriaus laiko rodant atsisiuntimo eigą.

Kasimas į simbolius

Nors numatytojoje ataskaitoje pateikiama vertinga ir naudinga informacija, galime kasti toliau. Vykdydami tai:

opreport --demangle = smart --symbols

Mes galime tiksliai sužinoti, kiek sunaudota procesoriaus laiko funkcijų bibliotekose:

Šiame pavyzdyje naudojau aukščiau esančią komandą wget, bet naudojau http: // URL (tą, kuris neperadresuoja į https: //) ir galite matyti, kad pėdsakuose nėra OpenSSL bibliotekų. Tačiau dabar turime ne tik bibliotekos pavadinimą, bet ir visą susijusių funkcijų sąrašą. Kaip matote, tinklo sluoksnis sunaudojo didžiąją dalį procesoriaus ne HALT laiko.

Pakelkite jį į kitą lygį

Ankstesniuose pavyzdžiuose mes naudojome „OProfile“, norėdami pažvelgti į vieną programą vienu metu. Galite iš karto ištirti visą savo sistemą naudodami visos sistemos jungiklį:

sudo operf - visos sistemos

Naudodamas šią techniką, „OProfile“ surinks statistiką tuo pačiu būdu ir sustabdys, kai paspausite CTRL + C. Vėliau galite paleisti komandą opreport. Kadangi profilio kūrėjas greičiausiai sugeneruos daug daugiau duomenų (ypač darbalaukyje arba užimtame serveryje).

pranešti & gt; ataskaita.txt

Ataskaitą dabar galima peržiūrėti faile, vadinamame ataskaita.txt

Žemos pridėtinės išlaidos

Svarbu pažymėti, kad nors „OProfile“ neturėtų kištis į jūsų programų veikimą, jis sukurs šiek tiek pridėtinių išlaidų ir taip sulėtins vykdymą. Aukščiau pateiktuose paprastuose pavyzdžiuose tai nesukėlė problemų, tačiau tikriausiai pastebėsite skirtumą programoje su ilgu vykdymu ir plačiais funkcijų iškvietimais. Dėl šios priežasties nerekomenduočiau šios programos naudoti gamybos serverio aplinkoje, nebent susidurtų su kritine našumo problema, kurią reikia išspręsti naudojant tiesioginį naudojimą. Net tada aš jį naudočiau pakankamai ilgai, kad galėčiau rasti problemą.

Išvada

„OProfile“ yra galingas našumo profiliavimo įrankis. Jis naudojasi žemiausiu „Linux“ lygiu, kad gautų našumo skaitiklius ir metriką, suteikiantį jums vertingos informacijos apie jūsų programas.

Praėjo dienos, kai spėjama derinant našumą - dabar jūs turite galią tiksliai žinoti, ką daro jūsų sistema ir kaip ją patobulinti. Nagrinėdami „OProfile“ sugeneruotas ataskaitas, galite priimti pagrįstus, duomenimis pagrįstus sprendimus, kaip optimizuoti savo sistemą.

Kaip užfiksuoti ir perduoti savo žaidimų sesiją sistemoje „Linux“
Anksčiau žaidimai buvo laikomi tik pomėgiu, tačiau laikui bėgant lošimų pramonė labai augo technologijų ir žaidėjų skaičiaus atžvilgiu. Žaidimų audito...
Geriausi žaidimai, kuriuos reikia žaisti naudojant rankos stebėjimą
„Oculus Quest“ neseniai pristatė puikią rankos stebėjimo be valdiklių idėją. „Oculus Quest“ rankų sekimo žaidimai iki šiol buvo ribojami, kai žaidimų ...
Kaip rodyti OSD perdangą viso ekrano „Linux“ programose ir žaidimuose
Žaisdami viso ekrano žaidimus arba naudodamiesi programomis be išsiblaškymo viso ekrano režimu, galite nutraukti nuo susijusios sistemos informacijos,...