Izrāde

OProfile apmācība

OProfile apmācība

OProfile ir Linux veiktspējas profilētājs. Šajā rakstā mēs izpētīsim, ko tā dara, kā to instalēt un konfigurēt un kā izmantot apkopotos datus.

Jums varētu rasties jautājums, kāpēc jums būtu nepieciešams šāds rīks, jo lielākajā daļā Linux izplatījumu pēc noklusējuma ir pieejami daudz labu veiktspējas analīzes rīku. Katrā instalācijā ir iekļauti tādi rīki kā top un vmstat, un utilītu, piemēram, strace, izsekošana parasti ir tikai apt-get away. Kur iederas OProfile?

Iepriekš minētie rīki ir lieliski, lai reāllaikā iegūtu Linux sistēmas momentuzņēmumu. Tādi rīki kā top vai htop parāda visus darbojošos procesus, to pašreizējo atmiņas patēriņu un procesora lietojumu. Bet, zinot, kādi procesi un sistēmas izsaukumi patērē visvairāk resursu, kļūst problemātiski.

Tur ienāk OProfile. Šis utilītu komplekts ne tikai veic analīzi dziļākā līmenī, bet arī ietaupa datus un ļauj sagatavot veiktspējas pārskatus, kas piedāvā daudz informācijas, kas var palīdzēt atkļūdot pat visnepatīkamāko veiktspējas problēmu.

OProfile nav paredzēts tikai izstrādātājiem. Darbvirsmas vidē OProfile var palīdzēt izsekot procesorietilpīgiem fona uzdevumiem vai I / O zvaniem, kas palēnina un nav uzreiz redzami. Aizņemtā sistēmā ar mainīgām procesa prioritātēm šos datus var būt grūti apkopot, nemaz nerunājot par to, kā tos interpretēt. Servera vides daudzprocesu raksturs šo uzdevumu padara vēl grūtāku, izmantojot tradicionālos rīkus.

Tas nozīmē, ka izstrādātāji, bez šaubām, maksimāli izmantos OProfile. Informācija, kuru es iepazīstināšu, aptvers abu lietošanas gadījumu pamatus, lai jūs varētu iedziļināties jebkuras Linux programmas veiktspējas metrikā.

Uzstādīšana

Pirms ienirt dziļi OProfile, ir jāveic ļoti svarīga piezīme - iespējams, to nevarēsit instalēt virtualizētā vidē. Ja operētājsistēmu Linux izmantojat VirtualBox, VMWare vai līdzīgā VM vidē, iespējams, ka OProfile nevarēs piekļūt nepieciešamajiem veiktspējas skaitītājiem, lai apkopotu datus. Turklāt, pat ja jūs to varat izmantot virtuālā vidē, precīzs laiks var būt nedaudz sagrozīts, pamatojoties uz resursdatora sistēmas slodzi, tāpēc, lūdzu, ņemiet to vērā, ja nedarbojaties ar vietējo aparatūru.

Vairāku Linux izplatījumu pakotņu pārvaldības sistēmās ir OProfile, kas atvieglo instalēšanu:

Vienkāršs piemērs

Kad programma ir instalēta, samērcēsim kājas ar triviālu, tomēr noderīgu piemēru. Programma “ls” ir komanda, kuru jūs, iespējams, izmantojat visu laiku. Tas vienkārši parāda pašreizējā direktorijā esošo failu un mapju sarakstu. Izsekosim tā iznākumu:

sudo operf ls

Jūs redzēsiet kaut ko līdzīgu iepriekš redzamajam ekrānuzņēmumam. Kad profilētājs ir pabeigts, tas paziņos “Profilēšana ir pabeigta.”Tas ir saglabājis datus mapē ar nosaukumu oprofile_data, kuru var izmantot, lai izveidotu pārskatu.

Palaidot komandu opreport (šajā gadījumā bez sudo), tiek izveidots šāds pārskats:

Šajā piemērā noklusējuma pārskats parāda paraugu skaitu, kad centrālais procesors nebija HALT stāvoklī (citiem vārdiem sakot, aktīvi kaut ko darīja). Kallsyms nodrošina simbolu meklēšanu, ko izmanto profilētājs, un ld.tā un libc.tā ir daļa no glibc pakotnes, kopīgas bibliotēkas, kas ir saistīta ar gandrīz visiem Linux izpildāmajiem failiem un nodrošina pamata funkcionalitāti, ko izstrādātāji var izmantot, lai atturētu no riteņa izgudrošanas un nodrošinātu vispārēju saderības līmeni starp dažādām sistēmām. Jūs varat redzēt, ka faktiskā programma ls bija daudz mazāk laika, kas nebija HALT laiks - lielāko daļu smagā celšanas veica standarta bibliotēkas.

Kad mēs esam pabeiguši ziņojumu, ieteicams noņemt datu mapi vai saglabāt to turpmākai analīzei. Šajā piemērā mēs to vienkārši noņemsim, jo ​​mēs veicam paraugu vingrinājumus. Tā kā mēs palaidām komandu ar sudo, mums ir jānoņem mape ar sudo. Esi uzmanīgs!

sudo rm -Rf oprofile_data

Sarežģītāks piemērs

Šajā nākamajā piemērā mēs palaidīsim programmu, kas faktiski dara kaut ko sarežģītāku, nekā tikai uzskaitīt failus pašreizējā mapē. Lejupielādēsim WordPress ar wget.

sudo operf wget http: // wordpress.org / jaunākais.darva.gz

Pēc šī piemēra mēs varam ģenerēt pārskatu ar komandu “opreport”:

Pēc šī jūs redzēsiet daudz vairāk aktivitāšu. Lai iegūtu jaunāko WordPress kopiju, komandai wget bija jāpaveic daudz darba aiz ainas. Lai gan nav nepieciešams pārbaudīt katru priekšmetu, interesantas vietas ir šādas:

Šāda veida dati izstrādātājam var sniegt daudz informācijas. Bet cik tas ir svarīgi servera sistēmas administratoram vai enerģijas lietotājam uz darbvirsmas? Zinot, kuras programmas daļas aizņem visvairāk procesora laika, mēs varam uzzināt, kas ir jāoptimizē vai kur notiek palēnināšanās, ļaujot mums pieņemt labākus lēmumus par to, kā optimizēt mūsu sistēmu.

Šajā piemērā visvairāk CPU laika paņēma kriptogrāfijas / SSL rutīnas. Tas ir saprotams, jo kriptogrāfija ir laikietilpīgs uzdevums. Bija WordPress.org vietne nav mūs novirzījusi uz vietni https: // šī bibliotēka nebūtu izmantota, tādējādi ietaupot CPU laiku. Tīkla slānis joprojām būtu izmantots, taču vadu savienojuma izmantošana bezvadu savienojuma vietā, visticamāk, būtu mazāka ar nodokļiem. Atspējojot progresa indikatoru wget programmā (izmantojot slēdzi -nv), būtu ietaupīts CPU laiks, parādot lejupielādes gaitu.

Rakšana simbolos

Lai gan noklusējuma ziņojumā ir sniegta vērtīga un noderīga informācija, mēs varam to izpētīt tālāk. Palaidot šo:

opreport --demangle = smart --symbols

Mēs varam precīzi uzzināt, cik daudz CPU laika funkcijas patērē bibliotēkās:

Šajā piemērā es izmantoju iepriekš minēto komandu wget, bet izmantoju http: // URL (tādu, kas nenovirza uz https: //), un izsekojumā var redzēt, ka OpenSSL bibliotēkas nav. Tomēr tagad bibliotēkas nosaukuma vietā mums ir pilns iesaistīto funkciju saraksts. Kā redzat, tīkla slānis patērēja lielāko daļu CPU laika, kas nav HALT.

Pārejot uz nākamo līmeni

Iepriekšējos piemēros mēs izmantojām OProfile, lai apskatītu vienu programmu vienlaikus. Varat uzreiz pārbaudīt visu sistēmu, izmantojot visas sistēmas slēdzi:

sudo operf - visas sistēmas garumā

Izmantojot šo paņēmienu, OProfile apkopos statistiku tādā pašā veidā un apstāsies, nospiežot taustiņu kombināciju CTRL + C. Pēc tam jūs varat palaist komandu opreport. Tā kā profilētājs, iespējams, ģenerēs daudz vairāk datu (īpaši uz darbvirsmas vai aizņemta servera).

ziņot & gt; Ziņot.txt

Pārskats tagad ir skatāms failā ar nosaukumu report.txt

Zema virs galvas

Ir svarīgi atzīmēt, ka, lai gan OProfile nevajadzētu traucēt jūsu programmu darbībai, tas radīs nedaudz papildu izmaksas un tādējādi palēninās izpildi. Mūsu vienkāršajos piemēros iepriekš tas neradīja problēmu, taču programmā ar ilgu izpildi un plašu funkciju izsaukumiem jūs, iespējams, pamanīsit atšķirību. Tāpēc es neieteiktu izmantot šo programmu ražošanas servera vidē, ja vien nerodas nopietna veiktspējas problēma, kas jāatrisina, izmantojot tiešraidi. Pat tad es to izmantotu pietiekami ilgi, lai atrastu problēmu.

Secinājums

OProfile ir spēcīgs veiktspējas profilēšanas rīks. Tas izmanto zemāko līmeni, kas pieejams Linux, lai iegūtu veiktspējas skaitītājus un metriku, kas sniedz jums vērtīgu informāciju par jūsu programmām.

Ir pagājuši minējumi veiktspējas atkļūdošanā - tagad jums ir tiesības precīzi zināt, ko dara jūsu sistēma un kā to uzlabot. Izpētot OProfile ģenerētos pārskatus, jūs varat pieņemt informētus, uz datiem balstītus lēmumus par savas sistēmas optimizāciju.

Labākās komandrindas spēles Linux
Komandrinda nav tikai lielākais sabiedrotais, lietojot Linux, bet tā var būt arī izklaides avots, jo to var izmantot, lai spēlētu daudzas jautras spēl...
Labākās Linux spēļu gamepad kartēšanas lietotnes
Ja jums patīk spēlēt spēles Linux ar parastu tastatūru, nevis parasto tastatūru un peles ievades sistēmu, jums ir dažas noderīgas lietotnes. Daudzas d...
Noderīgi rīki Linux spēlētājiem
Ja jums patīk spēlēt spēles Linux, iespējams, ka spēļu pieredzes uzlabošanai, iespējams, esat izmantojis tādas lietotnes un utilītprogrammas kā Wine, ...