Нишондиҳандаҳо барои серверҳои Linux: интихоби асбобҳои кушода

Мо сӯҳбатро дар бораи асбобҳо барои арзёбии кори CPU дар мошинҳои Linux идома медиҳем. Имруз дар материал: темци, uarch-bench, likwid, perf-tools ва llvm-mca.

Нишондиҳандаҳои бештар:

Нишондиҳандаҳо барои серверҳои Linux: интихоби асбобҳои кушода
Фото - Лукас Блазек — Пароканда

темчи

Ин асбобест барои ҳисоб кардани вақти иҷрои ду барнома. Аслан, он ба шумо имкон медиҳад, ки вақти иҷрои ду барномаро муқоиса кунед. Муаллифи ин барнома донишҷӯи Олмон Йоханнес Бехбергер буд, ки онро дар соли 2016 дар доираи рисолаи бакалаврии худ таҳия кардааст. Воситаи имрӯза паҳн мекунад дар доираи GNU General Public License литсензия шудааст.

Йоханес мехост асбоберо эҷод кунад, ки ба ӯ имкон медиҳад, ки кори системаи ҳисоббарориро дар муҳити назоратшаванда чен кунад. Аз ин рӯ, яке аз хусусиятҳои асосии temci қобилияти ташкили муҳити санҷишӣ мебошад. Барои намуна, метавонад: танзимоти мудири басомади CPU тағир диҳед, хомӯш кунед гипер-ришта ва кэшҳои L1 ва L2, хомӯш кардани режими турбо дар протсессори Intel ва ғайра. Барои муқоисаи temci асбобҳоро истифода мебарад замон, perf_stat и даст кашидан.

Ин аст он чизе ки утилита дар ҳолати аввал ба назар мерасад:

# 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-и сатҳи паст, ки аз ҷониби муҳандис Травис Даунс таҳия шудааст (Травис Даунс). Ба наздикӣ ӯ блогнависӣ мекард Масъалаҳои иҷроиш дар саҳифаҳои GitHub, ки дар бораи абзорҳои муқоисавӣ ва дигар чизҳои ба он алоқаманд сӯҳбат мекунад. Умуман, uarch-bench нав ба даст овардани маъруфият аст, аммо он аллакай хеле маъмул аст зикр шудааст сокинони Hacker News дар риштаҳои мавзӯӣ ҳамчун воситаи гузариш барои муқоиса.

Uarch-bench ба шумо имкон медиҳад, ки иҷрои хотира, суръати боркунии маълумот ва кори тозакуниро баҳо диҳед Бақайдгирии YMM. Натиҷаҳои муқоисавии аз ҷониби барнома тавлидшуда чӣ гунаанд, пайдо кардан мумкин аст дар анбори расмӣ дар поёни саҳифа.

Кайд кардан бамаврид аст, ки уарч-банч мисли темци, ғайрифаъол месозад Функсияи Intel Turbo Boost (он ба таври худкор суръати соати протсессорро дар зери сарборӣ зиёд мекунад), то натиҷаҳои санҷиш мувофиқ бошанд.

Дар айни замон, лоиҳа дар марҳилаи аввали таҳия қарор дорад, аз ин рӯ uarch-bench ҳуҷҷатҳои муфассал надорад ва амалиёти он метавонад хатогиҳо дошта бошад - масалан, душворихо маълуманд бо оғоз дар Ryzen. Инчунин, танҳо меъёрҳои меъмории x86 дастгирӣ карда мешаванд. Муаллиф ваъда медиҳад, ки дар оянда функсияҳои бештар илова хоҳад кард ва шуморо даъват мекунад, ки ба рушд ҳамроҳ шавед.

ликвид

Ин маҷмӯи асбобҳо барои арзёбии кори мошинҳои Linux бо протсессори Intel, AMD ва ARMv8 мебошад. Он дар соли 2017 таҳти сарпарастии Вазорати федералии маориф ва тадқиқоти Олмон таъсис дода шуда, ба манбаи кушода нашр шудааст.

Дар байни асбобҳои likwid, мо метавонем likwid-powermeter -ро қайд кунем, ки маълумотро аз реестрҳои RAPL дар бораи қувваи истеъмолкардаи система нишон медиҳад ва инчунин likwid-setFrequencies, ки ба шумо имкон медиҳад басомади протсессоро назорат кунед. Шумо метавонед рӯйхати пурраро бинед дар репозиторий пайдо кунед.

Воситаро муҳандисоне, ки дар таҳқиқоти HPC иштирок мекунанд, истифода мебаранд. Масалан, бо likwid кор мекунанд як гурӯҳи мутахассисони Маркази минтақавии ҳисоббарории Донишгоҳи Эрланген-Нюрнберг (RRZE) дар Олмон. Вай дар кор карда баромадани ин мачмуи асбобхо низ фаъолона иштирок мекунад.

Нишондиҳандаҳо барои серверҳои Linux: интихоби асбобҳои кушода
Фото - Клем Оножегуо — Пароканда

perf-асбобҳо

Ин восита барои таҳлили кори серверҳои Linux муаррифӣ кард Брендан Грег. Ӯ яке аз таҳиягарон аст DTrace - чаҳорчӯбаи пайгирии динамикӣ барои ислоҳи барномаҳо дар вақти воқеӣ.

perf-tools ба зерсистемаҳои ядрои perf_events ва ftrace асос ёфтааст. Утилитҳои онҳо ба шумо имкон медиҳанд, ки таъхири вуруд/чорро (iosnoop) таҳлил кунед, далелҳои занги системаро пайгирӣ кунед (бе ҳисоб, funcslower, funcgraph ва functrace) ва омори "хитҳо" дар кэши файл (cachesat) ҷамъоварӣ кунед. Дар ҳолати охирин, фармон чунин менамояд:

# ./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

Дар атрофи асбоб як ҷомеаи хеле калон ба вуҷуд омадааст (қариб 6 ҳазор ситора дар GitHub). Ва ширкатҳое ҳастанд, ки барои мисол perf-tools фаъолона истифода мебаранд Netflix. Аммо асбоб минбаъд таҳия ва тағир дода мешавад (гарчанде ки навсозиҳо вақтҳои охир хеле кам бароварда мешаванд). Аз ин рӯ, дар кори он хатогиҳо рух дода метавонанд - муаллиф менависад, ки баъзан perf-tools боиси воҳимаи ядро ​​​​мегардад.

llvm-mca

Утилитае, ки пешгӯӣ мекунад, ки коди мошин барои CPU-ҳои гуногун чӣ қадар захираҳои компютериро талаб мекунад. Вай қадр мекунад Дастурҳо барои як давра (IPC) ва сарбории сахтафзоре, ки барномаи мушаххас тавлид мекунад.

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-ро дар як ҳисоби шахсӣ идора кунед.

Манбаъ: will.com

Илова Эзоҳ