Komparnormoj por Linuksaj serviloj: elekto de malfermitaj iloj

Ni daŭre parolas pri iloj por taksi CPU-efikecon en Linuksaj maŝinoj. Hodiaŭ en la materialo: temci, uark-benko, likwid, perf-iloj kaj llvm-mca.

Pli da komparnormoj:

Komparnormoj por Linuksaj serviloj: elekto de malfermitaj iloj
Фото - Lukas Blazek — Malŝprucigi

temci

Ĉi tio estas ilo por taksi la ekzekuttempon de du programoj. Esence, ĝi permesas vin kompari la ekzekuttempon de du aplikoj. La verkinto de la utileco estis studento de Germanio, Johannes Bechberger, kiu evoluigis ĝin kiel parto de sia bakalaŭrotezo en 2016. La hodiaŭa ilo distribuita de licencita sub la Ĝenerala Publika Permesilo de GNU.

Johannes volis krei ilon kiu permesus al li mezuri la efikecon de komputika sistemo en kontrolita medio. Tial, unu el la ĉefaj trajtoj de temci estas la kapablo starigi testan medion. Ekzemple, povas: ŝanĝu la agordojn de la frekvenca administranto de CPU, malŝaltu hiper-fadenado kaj L1 kaj L2 kaŝmemoroj, malŝaltu turboreĝimon sur Intel-procesoroj, ktp. Por benchmarking temci uzas ilojn tempo, perf_stat и getrusage.

Jen kiel aspektas la utileco en la unua kazo:

# 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

Surbaze de la benchmarking rezultoj, la sistemo generas oportuna raporto kun diagramoj, tabeloj kaj grafikaĵoj, kiu distingas temci de similaj solvoj.

Inter la mankoj de temci elstaras ĝia "juneco". Pro tio li ne ĉio estas subtenata agordoj de aparataro kaj programaro. Ekzemple, estas malfacile funkcii per macOS, kaj iuj funkcioj ne disponeblas en ARM-bazita sistemo. En la estonteco, la situacio eble ŝanĝiĝos, ĉar la aŭtoro aktive disvolvas la projekton, kaj la nombro da steloj en GitHub iom post iom pliiĝas - antaŭ ne tiom longe temci eĉ diskutita en la komentoj en Hacker News.

uarch-bench

Ilo por taksi la efikecon de malaltnivelaj CPU-funkcioj, evoluigita fare de inĝeniero Travis Downs (Travis Downs). Lastatempe li blogigis Efikeco Gravas en GitHub Paĝoj, kiu parolas pri benchmarking-iloj kaj aliaj rilataj aferoj. Ĝenerale, uarch-bench ĵus komencas akiri popularecon, sed ĝi jam estas sufiĉe ofta menciita loĝantoj de Hacker News en temaj fadenoj kiel irebla ilo por benchmarking.

Uarch-bench permesas taksi memoran rendimenton, paralelan datuman ŝarĝan rapidon kaj purigan laboron YMM-registroj. Kiel aspektas la benchmarking-rezultoj generitaj de la programo, troveblas en la oficiala deponejo ĉe la malsupro de la paĝo.

Indas noti, ke uark-benko, kiel temci, malkonektas Intel Turbo Boost-funkcio (ĝi aŭtomate pliigas la procesoran horloĝan rapidon sub ŝarĝo) por ke la testrezultoj estu konsekvencaj.

Nuntempe, la projekto estas en la fruaj stadioj de evoluo, do uarch-bench ne havas detalan dokumentadon, kaj ĝia funkciado povas enhavi cimojn - ekzemple, malfacilaĵoj estas konataj kun lanĉo sur Ryzen. Ankaŭ, nur komparnormoj por x86-arkitekturoj estas subtenataj. La aŭtoro promesas aldoni pli da funkcieco estonte kaj invitas vin aliĝi al la evoluo.

likva

Ĉi tio estas aro da iloj por taksi la rendimenton de Linuksaj maŝinoj kun procesoroj Intel, AMD kaj ARMv8. Ĝi estis kreita sub la aŭspicioj de la Germana Federacia Ministerio pri Edukado kaj Esplorado en 2017 kaj liberigita en malferma fonto.

Inter la likwid-iloj, ni povas reliefigi likwid-powermeter, kiu montras informojn de RAPL-registroj pri la potenco konsumita de la sistemo, same kiel likwid-setFrequencies, kiu ebligas al vi kontroli la frekvencon de procesoro. Vi povas vidi la kompletan liston trovi en la deponejo.

La ilo estas uzata de inĝenieroj implikitaj en HPC-esplorado. Ekzemple, kun likwid laboras grupo de specialistoj de la Regiona Komputika Centro de la Universitato de Erlangen-Nürnberg (RRZE) en Germanio. Ŝi ankaŭ aktive partoprenas en la evoluo de ĉi tiu aro de iloj.

Komparnormoj por Linuksaj serviloj: elekto de malfermitaj iloj
Фото - Clem Onojeghuo — Malŝprucigi

perf-iloj

Ĉi tiu ilo por analizi la rendimenton de Linuksaj serviloj enkondukita Brendan Gregg. Li estas unu el la programistoj DTrace — dinamika spurkadro por sencimigi aplikojn en reala tempo.

perf-tools baziĝas sur la perf_events kaj ftrace-kernaj subsistemoj. Iliaj iloj permesas al vi analizi I/O-latentecon (iosnoop), spuri sistemajn alvokojn (unccount, funcslower, funcgraph kaj functrace) kaj kolekti statistikojn pri "trafoj" en la dosierkaŝmemoro (cachestat). En ĉi-lasta kazo, la komando aspektas jene:

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

Sufiĉe granda komunumo formiĝis ĉirkaŭ la instrumento (preskaŭ 6 mil steloj en GitHub). Kaj estas kompanioj kiuj aktive uzas perf-iloj, ekzemple Netflix. Sed la ilo estas plue evoluigita kaj modifita (kvankam ĝisdatigoj sufiĉe malofte estis publikigitaj lastatempe). Tial, eraroj povas okazi en ĝia funkciado - la aŭtoro skribas, ke foje perf-iloj kaŭzas kernan panikon.

llvm-mca

Ilo kiu antaŭdiras kiom da komputikresursoj maŝinkodo postulos sur malsamaj CPUoj. Ŝi taksas Instrukcioj por Ciklo (IPC) kaj la ŝarĝo sur la aparataro kiun speciala aplikaĵo generas.

llvm-mca estis prezentita en 2018 kiel parto de la projekto LLVM, kiu disvolvas universalan sistemon por analizo, transformo kaj optimumigo de programoj. Oni scias, ke la aŭtoroj de llvm-mca estis inspiritaj de solvo por analizi programaran rendimenton IACA de Intel kaj serĉis krei alternativon. Kaj laŭ uzantoj, la eligo de la ilo (ilia aranĝo kaj kvanto) vere similas al IACA - ekzemplo troveblas ĉi tie. Tamen, llvm-mca nur akceptas AT&T sintakso, do vi plej verŝajne devos uzi konvertilojn por labori kun ĝi.

Pri kio ni skribas en niaj blogoj kaj sociaj retoj:

Komparnormoj por Linuksaj serviloj: elekto de malfermitaj iloj "Mat. Wall Street-modelo" aŭ kiel optimumigi nubajn kostojn

Komparnormoj por Linuksaj serviloj: elekto de malfermitaj iloj Kiel sekurigi vian Linuksan sistemon: 10 konsiletoj
Komparnormoj por Linuksaj serviloj: elekto de malfermitaj iloj Minimumigo de risko: kiel ne perdi viajn datumojn

Komparnormoj por Linuksaj serviloj: elekto de malfermitaj iloj Libroj por tiuj, kiuj jam okupiĝas pri sistema administrado aŭ nur planas komenci
Komparnormoj por Linuksaj serviloj: elekto de malfermitaj iloj Elekto: kvin libroj kaj unu kurso pri retoj

Komparnormoj por Linuksaj serviloj: elekto de malfermitaj ilojNi ĉe 1cloud.ru ofertas senpagan servon "DNS-gastigado" Vi povas administri DNS-rekordojn en ununura persona konto.

fonto: www.habr.com

Aldoni komenton