Перформансе

ОПрофиле Туториал

ОПрофиле Туториал

ОПрофиле је профил за перформансе за Линук. У овом чланку ћемо истражити шта ради, како га инсталирати и конфигурисати и како податке окупљене ставити на употребу.

Можда се питате зашто би вам требао овакав алат, јер на већини Линук дистрибуција подразумевано постоји мноштво добрих алата за анализу перформанси. Свака инсталација укључује алате као што су топ и вмстат, а услужни програми за праћење попут страце су обично само погодак. Где се уклапа ОПрофиле?

Претходно споменути алати су одлични у прављењу снимка система Линук у реалном времену. Алати попут топ или хтоп приказују све покренуте процесе, тренутну потрошњу меморије и употребу процесора. Али знати који процеси и системски позиви троше највише ресурса постаје проблематично.

Ту долази ОПрофиле. Овај услужни пакет не само да врши анализу на дубљем нивоу, већ такође штеди податке и омогућава вам да направите извештаје о учинку који нуде богатство информација које вам могу помоћи у отклањању грешака и код најнеухватљивијих проблема са перформансама.

ОПрофиле није само за програмере. У радном окружењу, ОПрофиле вам може помоћи да пронађете позадинске задатке који захтевају ЦПУ или И / О позиве који вас успоравају и нису одмах евидентни. На прометном систему са променљивим приоритетима процеса, ове податке је тешко прикупити, а камоли протумачити. Вишепроцесна природа серверског окружења чини овај задатак још тежим код традиционалних алата.

Упркос томе, програмери ће без сумње искористити ОПрофиле на најбољи начин. Информације које ћу представити покриваће основе оба случаја употребе, тако да можете истражити метрику перформанси било ког Линук програма.

Инсталација

Постоји веома важна напомена коју морате имати пре дубоког зарањања у ОПрофиле - можда га нећете моћи инсталирати у виртуелизованом окружењу. Ако користите Линук унутар ВиртуалБок-а, ВМВаре-а или сличног ВМ окружења, ОПрофиле можда неће моћи приступити потребним бројачима перформанси за прикупљање података. Даље, чак и ако сте у могућности да га користите у виртуелном окружењу, прецизно подешавање времена може бити донекле изобличено на основу оптерећења система хоста, па имајте ово на уму ако не радите на изворном хардверу.

Неколико Линук дистрибуција има ОПрофиле у својим системима за управљање пакетима, што олакшава инсталацију:

Једноставан пример

Једном када се програм инсталира, поквасимо ноге тривијалним, а корисним примером. Програм „лс“ је наредба коју вероватно стално користите. Једноставно приказује листу датотека и директоријума у ​​тренутном директоријуму. Пратимо његов излаз:

судо оперф лс

Видећете нешто слично горенаведеном снимку екрана. Након што је профилер завршен, огласиће се „Профилирање завршено.”Своје податке је сачувао у фасцикли званој опрофиле_дата која се може користити за генерисање извештаја.

Покретањем наредбе опрепорт (у овом случају без судо-а) добија се извештај сличан овом:

У овом примеру, подразумевани извештај приказује број узорака када ЦПУ није био у стању ХАЛТ (другим речима, активно је радио нешто). Каллсимс пружа тражење симбола који користи профилер и лд.тако и либц.тако да су део пакета глибц, заједничке библиотеке повезане у готово све извршне датотеке Линука која пружа основне функционалности које програмери могу користити да не би пронашли нови точак и обезбедили генерички ниво компатибилности између различитих система. Можете видети да је стварни програм лс имали далеко мање времена без ХАЛТ-а - главнину дизања тешког дела урадиле су стандардне библиотеке.

Када завршимо са извештајем, било би добро уклонити фасциклу са подацима или је сачувати за будућу анализу. У овом примеру ћемо га само уклонити пошто изводимо узорке вежби. Пошто смо извршили команду са судо, морамо уклонити фасциклу са судо. Бити пажљив!

судо рм -Рф опрофиле_дата

Сложенији пример

У следећем примеру покренут ћемо програм који заправо ради нешто сложеније од пуког пописа датотека у тренутној фасцикли. Да преузмемо ВордПресс помоћу вгета.

судо оперф вгет хттп: // вордпресс.орг / најновије.катран.гз

После овог примера, можемо генерисати извештај помоћу наредбе „опрепорт“:

После ове видећете много више активности. Команда вгет је морала да уради пуно посла иза сцене да би добила најновију копију ВордПресс-а. Иако није потребно испитивати сваку ставку, занимљиве тачке интереса су:

Ова врста података програмеру може пружити мноштво информација. Али како је ово важно за системског администратора сервера или напредног корисника на радној површини? Знајући који делови програма узимају највише процесорског времена, можемо открити шта је потребно за оптимизацију или где долази до успоравања, омогућавајући нам да донесемо боље одлуке о томе како оптимизирати наш систем.

У овом примеру, највише процесорског времена узеле су крипто / ССЛ рутине. То је разумљиво јер је криптографија дуготрајан задатак. Имао сам вордпресс.веб локација орг нас није преусмерила на хттпс: // ова библиотека не би била коришћена, што би нам уштедело процесорско време. Мрежни слој би и даље био коришћен, али употреба жичне везе уместо бежичне везе вероватно би била мање опорезива. Онемогућавање индикатора напретка на програму вгет (преко прекидача -нв) уштедело би ЦПУ време у приказивању напретка преузимања.

Копање у симболе

Иако подразумевани извештај пружа драгоцене и корисне информације, можемо копати даље. Покретањем овог:

опрепорт --демангле = смарт --симболс

Можемо тачно сазнати колико процесорског времена функционише у потрошеним библиотекама:

У овом примеру сам користио горњу команду вгет, али користио сам хттп: // УРЛ (онај који не преусмерава на хттпс: //) и у трагу можете да видите одсуство ОпенССЛ библиотека. Међутим, уместо само назива библиотеке, сада имамо пун списак укључених функција. Као што видите, мрежни слој је трошио већи део ЦПУ не-ХАЛТ времена.

Прелазак на следећи ниво

У претходним примерима користили смо ОПрофиле да бисмо погледали један по један програм. Можете да прегледате цео свој систем одједном помоћу преклопника за цео систем:

судо оперф - широм система

Користећи ову технику, ОПрофиле ће на исти начин прикупљати статистику и зауставити се када притиснете ЦТРЛ + Ц. После тога можете покренути наредбу опрепорт. Пошто ће профилер вероватно генерисати много више података (посебно на радној површини или заузетом серверу).

опрепорт &амп; гт; извештај.ткт

Извештај је сада доступан у датотеци која се зове извештај.ткт

Лов Оверхеад

Важно је напоменути да, иако ОПрофиле не би требало да омета рад ваших програма, створит ће мало трошкова и на тај начин успорити извршавање. У нашим једноставним примерима горе то није створило проблем, али на програму са дугим извршавањем и опсежним позивима функција вероватно ћете приметити разлику. Због тога не бих препоручио употребу овог програма у окружењу производног сервера, осим ако се не суочите са критичним проблемом перформанси који се мора решити употребом уживо. Чак и тада бих га користио довољно дуго да пронађем проблем.

Закључак

ОПрофиле је моћан алат за профилисање перформанси. Достиже најнижи ниво доступан у Линуку да би добио бројаче перформанси и показатеље који вам дају драгоцене информације о вашим програмима.

Прошло је време нагађања у отклањању грешака у перформансама - сада имате моћ да тачно знате шта ваш систем ради и како га побољшати. Проучавајући извештаје које генерише ОПрофиле, можете доносити информисане одлуке засноване на подацима о оптимизацији вашег система.

Како инсталирати Леагуе Оф Легендс на Убунту 14.04
Ако сте љубитељ Леагуе оф Легендс, ово је прилика да тестирате Леагуе оф Легендс. Имајте на уму да је ЛОЛ подржан на ПлаиОнЛинук ако сте корисник лину...
Инсталирајте најновију ОпенРА Стратеги Гаме на Убунту Линук
ОпенРА је Либре / Фрее Реал Тиме стратешки механизам који ствара ране Вествоод игре попут класичне Цомманд & Цонкуер: Ред Алерт. Дистрибуирани модови ...
Инсталирајте најновији Долпхин Емулатор за Гамецубе & Вии на Линук
Долпхин Емулатор вам омогућава да играте изабране игре Гамецубе и Вии на Линук Персонал Цомпутерс (ПЦ). Долпхин Емулатор је слободно доступан и емула...