Linux серверлери үчүн эталондор: ачык инструменттердин тандоосу

Биз Linux машиналарында CPU өндүрүмдүүлүгүн баалоо куралдары жөнүндө сүйлөшүүнү улантабыз. Бугун материалда: темци, уарч-стандык, ликвид, перф-куралдар жана llvm-mca.

Көбүрөөк көрсөткүчтөр:

Linux серверлери үчүн эталондор: ачык инструменттердин тандоосу
Фото - Лукас Блазек - unsplash

temci

Бул эки программанын аткарылуу убактысын баалоо үчүн курал. Негизи, бул эки тиркеменин аткарылуу убактысын салыштырууга мүмкүндүк берет. Пайдалуу программанын автору Германиядан келген студент Йоханнес Бехбергер болгон, ал аны 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 серверлери үчүн эталондор: ачык инструменттердин тандоосу
Фото - Клем Оножегуо - unsplash

perf-куралдар

Бул Linux серверлеринин иштешин талдоо үчүн курал берилген Брендан Грегг. Ал иштеп чыгуучулардын бири DTrace — реалдуу убакытта тиркемелердин мүчүлүштүктөрүн оңдоо үчүн динамикалык байкоо алкагы.

perf-tools perf_events жана ftrace өзөктүк подсистемаларына негизделген. Алардын утилиталары киргизүү/чыгаруу күтүү убактысын (iosnoop) анализдөөгө, тутумдук чалуу аргументтерине көз салууга (unccount, funcslower, funcgraph жана functrace) жана файл кэшинде (кэшет) "хиттер" боюнча статистиканы чогултууга мүмкүндүк берет. Акыркы учурда, буйрук төмөнкүдөй көрүнөт:

# ./cachestat -t
Counting cache functions... Output every 1 seconds.
TIME HITS MISSES DIRTIES RATIO BUFFERS_MB CACHE_MB
08:28:57 415 0 0 100.0% 1 191
08:28:58 411 0 0 100.0% 1 191
08:28:59 362 97 0 78.9% 0 8
08:29:00 411 0 0 100.0% 0 9

Аспаптын айланасында бир топ чоң жамаат түзүлдү (GitHub боюнча дээрлик 6 миң жылдыз). Ал эми, мисалы, perf-куралдар жигердүү колдонгон компаниялар бар Netflix. Бирок курал андан ары өнүктүрүлүп, өзгөртүлүп жатат (бирок акыркы убакта жаңыртуулар сейрек чыгарылды). Ошондуктан, анын иштешинде каталар болушу мүмкүн, - деп жазат автор кээде perf-куралдар ядро ​​​​паникасын пайда кылат.

llvm-mca

Ар кандай процессорлордо машина коду канча эсептөө ресурстарын талап кыларын болжолдоочу утилита. Ал берген баасы боюнча маалыматтар Цикл боюнча нускамалар (ЭПК) жана белгилүү бир тиркеме жараткан жабдыктагы жүк.

llvm-mca 2018-жылы долбоордун алкагында сунушталган LLVM, ал программаларды талдоо, трансформациялоо жана оптималдаштыруу үчүн универсалдуу системаны иштеп чыгууда. Белгилүү болгондой, llvm-mca авторлору программалык камсыздоонун иштешин талдоо үчүн чечимге шыктанышкан. IACA Intel компаниясынан жана альтернатива түзүүгө умтулган. Ал эми колдонуучулардын айтымында, куралдын чыгарылышы (алардын макети жана саны) чындап эле IACAга окшош - мисал бул жерден тапса болот. Бирок, llvm-mca гана кабыл алат AT&T синтаксиси, андыктан аны менен иштөө үчүн конвертерлерди колдонууга туура келет.

Блогдорубузда жана социалдык тармактарыбызда эмне жөнүндө жазабыз:

Linux серверлери үчүн эталондор: ачык инструменттердин тандоосу «Мат. Уолл Стрит модели" же булут чыгымдарын кантип оптималдаштыруу керек

Linux серверлери үчүн эталондор: ачык инструменттердин тандоосу Linux тутумуңузду кантип коргоо керек: 10 кеңеш
Linux серверлери үчүн эталондор: ачык инструменттердин тандоосу Тобокелдиктерди азайтуу: маалыматыңызды кантип жоготпоо керек

Linux серверлери үчүн эталондор: ачык инструменттердин тандоосу Системалык башкарууга мурунтан эле тартылган же жөн эле баштоону пландап жаткандар үчүн китептер
Linux серверлери үчүн эталондор: ачык инструменттердин тандоосу Тандоо: беш китеп жана тармактар ​​боюнча бир курс

Linux серверлери үчүн эталондор: ачык инструменттердин тандоосуБиз 1cloud.ru акысыз кызматты сунуштайбыз "DNS хостинги" Сиз DNS жазууларын бир жеке аккаунтта башкара аласыз.

Source: www.habr.com

Комментарий кошуу