Performance

OProfiili õpetus

OProfiili õpetus

OProfile on Linuxi jõudlusprofiil. Selles artiklis uurime, mida ta teeb, kuidas seda installida ja konfigureerida ning kuidas koondatud andmeid kasutada.

Võite mõelda, miks vajate sellist tööriista, kuna enamikus Linuxi distributsioonides on vaikimisi saadaval palju häid jõudlusanalüüsi tööriistu. Iga install sisaldab tööriistu nagu top ja vmstat ning utiliitide nagu strace jälitamine on tavaliselt lihtsalt apt-get away. Kuhu mahub OProfile?

Varem mainitud tööriistad on suurepärased reaalajas Linuxi süsteemi hetktõmmise saamiseks. Tööriistad nagu top või htop näitavad kõiki käimasolevaid protsesse, nende praegust mälukasutust ja protsessori kasutamist. Kuid probleemne on teadmine, millised protsessid ja süsteemikõned kõige rohkem ressursse kulutavad.

Seal tuleb sisse OProfile. See utiliidipakett mitte ainult ei analüüsi sügavamal tasemel, vaid salvestab andmeid ja võimaldab teil koostada jõudlusaruandeid, mis pakuvad palju teavet, mis aitab teil siluda isegi kõige raskemini mõistetavat jõudlusprobleemi.

OProfile pole mõeldud ainult arendajatele. Töölauakeskkonnas aitab OProfile teil leida protsessorimahukaid taustülesandeid või I / O-kõnesid, mis aeglustavad teid ja pole kohe ilmne. Protsessi prioriteetide muutmisega hõivatud süsteemis võib neid andmeid olla keeruline koguda, rääkimata tõlgendamisest. Serverikeskkonna mitmeprotsessiline olemus muudab selle ülesande traditsiooniliste tööriistade abil veelgi keerulisemaks.

See tähendab, et arendajad saavad OProfile'ist kahtlemata kõige rohkem kasu. Esitatav teave hõlmab mõlema kasutusjuhtumi põhitõdesid, et saaksite uurida mis tahes Linuxi programmi jõudlusmõõdikuid.

Paigaldamine

Enne OProfile'i sügavuti sukeldumist tuleb teha väga oluline märkus - te ei pruugi seda installida virtualiseeritud keskkonda. Kui kasutate Linuxi VirtualBoxi, VMWare'i või muu sarnase VM-i keskkonnas, ei pruugi OProfile pääseda andmete kogumiseks vajalikele jõudlusloenduritele juurde. Isegi kui saate seda kasutada virtuaalses keskkonnas, võib täpne ajastus hostisüsteemi koormuse põhjal olla mõnevõrra moonutatud, nii et pidage seda meeles, kui te ei tööta natiivriistvaraga.

Mitmete Linuxi distributsioonide paketihaldussüsteemides on OProfile, mis muudab installimise lihtsaks:

Lihtne näide

Kui programm on installitud, laseme jalad märjaks triviaalse, kuid siiski kasuliku näite abil. Programm “ls” on käsk, mida kasutate tõenäoliselt kogu aeg. See lihtsalt kuvab praeguses kataloogis olevate failide ja kaustade loendi. Jälgime selle väljundit:

sudo operf ls

Näete midagi sarnast ülaltoodud ekraanipildiga. Kui profileerija on valmis, teatab ta „Profiilimine on tehtud."See on oma andmed salvestanud kausta nimega oprofile_data, mida saab kasutada aruande loomiseks.

Käsu opreport käivitamine (antud juhul ilma sudo-ta) loob sarnase aruande:

Selles näites näitab vaikearuanne proovide arvu, kui protsessor ei olnud HALT-olekus (teisisõnu tegi midagi aktiivselt). Kallsyms pakub sümbolite otsimist, mida kasutab profiilija ja ld.nii ja libc.nii on osa glibci paketist, mis on peaaegu kõigi Linuxi käivitatavatega ühendatud tavaline teek, mis pakub põhifunktsioonide kasutamist, mida arendajad saavad kasutada ratta uuesti leiutamiseks ja üldise ühilduvuse tagamiseks erinevate süsteemide vahel. Näete, et tegelik programm ls oli palju vähem aega kui HALT - suurema osa raskest tõstmisest tegid tavalised raamatukogud.

Kui oleme aruandega valmis, on mõistlik kas eemaldada andmekaust või salvestada see edaspidiseks analüüsiks. Selles näites eemaldame selle lihtsalt, kuna töötame näidisharjutusi. Kuna käitasime käsu sudoga, peame kaust sudoga eemaldama. Ole ettevaatlik!

sudo rm -Rf oprofile_andmed

Keerulisem näide

Selles järgmises näites käivitame programmi, mis tegelikult teeb midagi keerukamat kui lihtsalt failide loendamine praeguses kaustas. Laadime alla WordPressi koos wgetiga.

sudo operf wget http: // wordpress.org / hiljemalt.tõrv.gz

Selle näite järel saame koostada aruande käsuga “opreport”:

Pärast seda näete palju rohkem tegevust. Wget-käsk pidi WordPressi uusima eksemplari saamiseks lava taga palju tööd tegema. Ehkki iga üksust pole vaja uurida, on huvitavad huvipakkuvad punktid järgmised:

Sellised andmed võivad anda arendajale palju teavet. Kuid kuidas on see oluline serveri süsteemiadministraatorile või töölaua kasutajale? Teades, millised programmi osad võtavad kõige rohkem protsessori aega, saame teada, mida on vaja optimeerida või kus aeglustumine toimub, võimaldades meil teha paremaid otsuseid oma süsteemi optimeerimise kohta.

Selles näites võtsid krüpto / SSL-i rutiinid kõige rohkem protsessori aega. See on mõistetav, sest krüptograafia on aeganõudev ülesanne. Oli Wordpress.org-i veebisait ei suunanud meid aadressile https: // seda teeki poleks kasutatud, säästes sellega protsessori aega. Võrgukihti oleks endiselt kasutatud, kuid traadita ühenduse asemel traadiga ühenduse kasutamine oleks tõenäoliselt vähem maksustatud. Wget-programmi progressiindikaatori keelamine (-nv-lüliti kaudu) oleks säästnud protsessori aega allalaadimise edenemise kuvamisel.

Sümbolidesse kaevamine

Ehkki vaikearuanne annab väärtuslikku ja kasulikku teavet, saame selle veelgi edasi kaevata. Selle käivitamisega:

opreport --demangle = smart --sümbolid

Saame teada, kui palju tarbib protsessorite aeg raamatukogudes:

Selles näites kasutasin ülaltoodud käsku wget, kuid kasutasin http: // URL-i (see, mis ei suunata aadressile https: //) ja näete, et jäljel pole OpenSSL-i teekide puudumist. Kuid ainult raamatukogu nime asemel on meil nüüd kaasatud funktsioonide täielik loetelu. Nagu näete, kulutas võrgukiht suurema osa protsessori mitte-HALT-ajast.

Selle viimine järgmisele tasandile

Eelmistes näidetes oleme kasutanud OProfile'i, et heita pilk ühele programmile korraga. Saate kogu süsteemi korraga uurida, kasutades kogu süsteemi hõlmavat lülitit:

sudo operf - kogu süsteem

Seda tehnikat kasutades kogub OProfile statistikat samal viisil ja peatub, kui vajutate klahvikombinatsiooni CTRL + C. Pärast saate käivitada käsu opreport. Kuna profileerija genereerib tõenäoliselt palju rohkem andmeid (eriti töölaual või hõivatud serveris).

aruanne & gt; aruanne.txt

Aruannet saab nüüd vaadata failis nimega aruanne.txt

Madal üldkulud

Oluline on märkida, et kuigi OProfile ei tohiks teie programmide tööd segada, tekitab see natuke üldkulusid ja aeglustab seega käivitamist. Meie ülaltoodud lihtsates näidetes ei tekitanud see probleemi, kuid pika täitmise ja ulatuslike funktsioonikõnedega programmis märkate tõenäoliselt erinevust. Seetõttu ei soovitaks ma seda programmi tootmisserveri keskkonnas kasutada, kui pole silmitsi kriitilise jõudlusprobleemiga, mis tuleb reaalajas lahendada. Isegi siis kasutaksin seda probleemi leidmiseks piisavalt kaua.

Järeldus

OProfile on võimas toimivuse profileerimise tööriist. See kasutab Linuxi madalaimat taset, et saada jõudlusloendureid ja mõõdikuid, mis annavad teile teie programmide kohta väärtuslikku teavet.

Möödas on jõudluse silumise arvamise päevad - teil on nüüd õigus täpselt teada, mida teie süsteem teeb ja kuidas seda parandada. Uurides OProfile'i loodud aruandeid, saate oma süsteemi optimeerimiseks teha teadlikke ja andmetest lähtuvaid otsuseid.

Nende tasuta tööriistade abil lisage Windows 10-le hiire liigutused
Viimastel aastatel on arvutid ja operatsioonisüsteemid palju arenenud. Oli aeg, mil kasutajad pidid failihaldurites navigeerimiseks kasutama käske. Na...
Juhtige ja hallake hiire liikumist mitme kuvari vahel Windows 10-s
Dual Display Mouse Manager võimaldab teil kontrollida ja konfigureerida hiire liikumist mitme monitori vahel, aeglustades selle liikumist piiri läheda...
WinMouse võimaldab teil kohandada ja parandada hiirekursori liikumist Windowsi arvutis
Kui soovite oma hiirekursori vaikefunktsioone paremaks muuta, kasutage vabavara WinMouse. See lisab rohkem funktsioone, mis aitavad teil alandlikust h...