ProHoster > Blog > башкаруу > Linux серверлери үчүн эталондор: ачык инструменттердин тандоосу
Linux серверлери үчүн эталондор: ачык инструменттердин тандоосу
Биз Linux машиналарында CPU өндүрүмдүүлүгүн баалоо куралдары жөнүндө сүйлөшүүнү улантабыз. Бугун материалда: темци, уарч-стандык, ликвид, перф-куралдар жана llvm-mca.
Бул эки программанын аткарылуу убактысын баалоо үчүн курал. Негизи, бул эки тиркеменин аткарылуу убактысын салыштырууга мүмкүндүк берет. Пайдалуу программанын автору Германиядан келген студент Йоханнес Бехбергер болгон, ал аны 2016-жылы дипломдук диссертациясынын бир бөлүгү катары иштеп чыккан. Бүгүнкү курал жайылуу GNU General Public License боюнча лицензияланган.
Йоханнес башкарылуучу чөйрөдө эсептөө тутумунун иштешин өлчөөгө мүмкүндүк берүүчү куралды түзгүсү келген. Ошондуктан, temci негизги өзгөчөлүктөрүнүн бири сыноо чөйрөсүн түзүү жөндөмдүүлүгү болуп саналат. Мисалы, алат: CPU жыштыгын башкаргыч орнотууларды өзгөртүү, өчүрүү гипер жип жана L1 жана L2 кэштери, Intel процессорлорундагы турбо режимин өчүрүү, ж.б. Салыштыруу үчүн temci куралдарды колдонот. убакыт, perf_stat и Getrusage.
Бул биринчи учурда утилита кандай көрүнөт:
# compare the run times of two programs, running them each 20 times
> temci short exec "sleep 0.1" "sleep 0.2" --runs 20
Benchmark 20 times [####################################] 100%
Report for single runs
sleep 0.1 ( 20 single benchmarks)
avg_mem_usage mean = 0.000, deviation = 0.0
avg_res_set mean = 0.000, deviation = 0.0
etime mean = 100.00000m, deviation = 0.00000%
max_res_set mean = 2.1800k, deviation = 3.86455%
stime mean = 0.000, deviation = 0.0
utime mean = 0.000, deviation = 0.0
sleep 0.2 ( 20 single benchmarks)
avg_mem_usage mean = 0.000, deviation = 0.0
avg_res_set mean = 0.000, deviation = 0.0
etime mean = 200.00000m, deviation = 0.00000%
max_res_set mean = 2.1968k, deviation = 3.82530%
stime mean = 0.000, deviation = 0.0
utime mean = 0.000, deviation = 0.0
Бенчмаркингдин жыйынтыгы боюнча система түзүлөт ыңгайлуу отчет схемалар, таблицалар жана графиктер менен, бул темци окшош чечимдерден айырмалап турат.
Темци-деги кемчиликтердин арасында анын «жаштыгы» айырмаланып турат. Ушундан улам ал баары колдоого алынбайт аппараттык жана программалык камсыздоо конфигурациялары. Мисалы, аны macOS менен иштетүү кыйын, ал эми кээ бир функциялар ARM негизделген тутумда жеткиликтүү эмес. Келечекте кырдаал өзгөрүшү мүмкүн, анткени автор долбоорду активдүү иштеп чыгууда жана GitHubдагы жылдыздардын саны акырындык менен көбөйүүдө - жакында эле temci комментарийлерде талкууланат Hacker News сайтында.
Инженер Травис Даунс тарабынан иштелип чыккан төмөнкү деңгээлдеги CPU функцияларынын иштешин баалоо үчүн программа.Travis Downs). Акыркы убакта ал блог жазып жүргөн Performance Matters GitHub баракчаларында, салыштыруу куралдары жана башка тиешелүү нерселер жөнүндө сөз болот. Жалпысынан алганда, uarch-bench популярдуулукка ээ боло баштады, бирок көп учурда айтылган Hacker News тургундарынын тематикалык жиптеринде салыштыруу үчүн өтүүчү курал катары.
Uarch-bench эс тутумдун иштешин, параллелдүү маалыматтарды жүктөө ылдамдыгын жана тазалоо иштерин баалоого мүмкүндүк берет YMM регистрлери. Программа тарабынан түзүлгөн салыштыруу натыйжалары кандай экенин табууга болот расмий репозиторийде беттин ылдый жагында.
темци сиякты уарх-стенд! иштен чыгарат Intel Turbo Boost функциясы (жүктөп жатканда процессордун саат ылдамдыгын автоматтык түрдө жогорулатат), тесттин натыйжалары ырааттуу болушу үчүн.
Азырынча долбоор иштеп чыгуунун алгачкы этабында, ошондуктан uarch-bench деталдуу документтерге ээ эмес жана анын иштеши мүчүлүштүктөрдү камтышы мүмкүн - мисалы, кыйынчылыктар белгилүү Ryzenде ишке киргизүү менен. Ошондой эле, x86 архитектурасы үчүн эталондор гана колдоого алынат. Автор келечекте көбүрөөк функцияларды кошууга убада берип, иштеп чыгууга кошулууга чакырат.
Бул Intel, AMD жана ARMv8 процессорлору бар Linux машиналарынын иштешин баалоо үчүн куралдардын жыйындысы. Ал 2017-жылы Германиянын Федералдык Билим берүү жана Изилдөө министрлигинин колдоосу астында түзүлгөн жана ачык булакка чыгарылган.
Likwid инструменттеринин ичинен биз RAPL регистрлеринен тутум керектеген энергия жөнүндө маалыматты көрсөткөн likwid-powermeterди, ошондой эле процессордун жыштыгын көзөмөлдөөгө мүмкүндүк берген likwid-setFrequenciesти бөлүп көрсөтсө болот. Толук тизмени көрө аласыз репозиторийден табуу.
Бул курал HPC изилдөөгө катышкан инженерлер тарабынан колдонулат. Мисалы, likwid менен иштеп Германиядагы Эрланген-Нюрнберг университетинин (RRZE) аймактык эсептөө борборунун адистеринин тобу. Ал ошондой эле куралдардын бул комплексин иштеп чыгууга активдүү катышат.
Бул Linux серверлеринин иштешин талдоо үчүн курал берилген Брендан Грегг. Ал иштеп чыгуучулардын бири DTrace — реалдуу убакытта тиркемелердин мүчүлүштүктөрүн оңдоо үчүн динамикалык байкоо алкагы.
perf-tools perf_events жана ftrace өзөктүк подсистемаларына негизделген. Алардын утилиталары киргизүү/чыгаруу күтүү убактысын (iosnoop) анализдөөгө, тутумдук чалуу аргументтерине көз салууга (unccount, funcslower, funcgraph жана functrace) жана файл кэшинде (кэшет) "хиттер" боюнча статистиканы чогултууга мүмкүндүк берет. Акыркы учурда, буйрук төмөнкүдөй көрүнөт:
Аспаптын айланасында бир топ чоң жамаат түзүлдү (GitHub боюнча дээрлик 6 миң жылдыз). Ал эми, мисалы, perf-куралдар жигердүү колдонгон компаниялар бар Netflix. Бирок курал андан ары өнүктүрүлүп, өзгөртүлүп жатат (бирок акыркы убакта жаңыртуулар сейрек чыгарылды). Ошондуктан, анын иштешинде каталар болушу мүмкүн, - деп жазат автор кээде perf-куралдар ядро паникасын пайда кылат.
Ар кандай процессорлордо машина коду канча эсептөө ресурстарын талап кыларын болжолдоочу утилита. Ал берген баасы боюнча маалыматтар Цикл боюнча нускамалар (ЭПК) жана белгилүү бир тиркеме жараткан жабдыктагы жүк.
llvm-mca 2018-жылы долбоордун алкагында сунушталган LLVM, ал программаларды талдоо, трансформациялоо жана оптималдаштыруу үчүн универсалдуу системаны иштеп чыгууда. Белгилүү болгондой, llvm-mca авторлору программалык камсыздоонун иштешин талдоо үчүн чечимге шыктанышкан. IACA Intel компаниясынан жана альтернатива түзүүгө умтулган. Ал эми колдонуучулардын айтымында, куралдын чыгарылышы (алардын макети жана саны) чындап эле IACAга окшош - мисал бул жерден тапса болот. Бирок, llvm-mca гана кабыл алат AT&T синтаксиси, андыктан аны менен иштөө үчүн конвертерлерди колдонууга туура келет.
Блогдорубузда жана социалдык тармактарыбызда эмне жөнүндө жазабыз: