Linux zerbitzarientzako erreferentziak: tresna irekien aukeraketa

Linux makinetan CPUren errendimendua ebaluatzeko tresnei buruz hitz egiten jarraitzen dugu. Gaur materialan: temci, uarch-bench, likwid, perf-tools eta llvm-mca.

Erreferentzia gehiago:

Linux zerbitzarientzako erreferentziak: tresna irekien aukeraketa
Argazkia - lukas blazek β€” Zipriztindu

temci

Hau bi programen exekuzio-denbora kalkulatzeko tresna bat da. Funtsean, bi aplikazioren exekuzio-denbora alderatzeko aukera ematen du. Utilitatearen egilea Johannes Bechberger Alemaniako ikasle bat izan zen, eta bere graduko tesiaren barruan garatu zuen 2016an. Gaurko tresna arabera banatuta GNU Lizentzia Publiko Orokorraren lizentziapean.

Johannesek ingurune kontrolatu batean informatika-sistema baten errendimendua neurtzeko aukera emango zion tresna bat sortu nahi zuen. Hori dela eta, temci-ren ezaugarri nagusietako bat proba-ingurune bat konfiguratzeko gaitasuna da. Adibidez, ko ahal: aldatu PUZaren maiztasun-kudeatzailearen ezarpenak, desgaitu hiper-haria eta L1 eta L2 cacheak, desaktibatu turbo modua Intel prozesadoreetan, etab. Benchmarkak egiteko temci-k tresnak erabiltzen ditu. denbora, perf_stat ΠΈ getrusage.

Hau da erabilgarritasunaren itxura lehen kasuan:

# 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

Benchmarking emaitzetan oinarrituta, sistemak sortzen du txosten erosoa diagrama, taula eta grafikoekin, temci antzeko soluzioetatik bereizten dituena.

Temciren gabezien artean, bere β€œgaztetasuna” nabarmentzen da. Horregatik zuen dena ez da onartzen hardware eta software konfigurazioak. Adibidez, zaila da macOS-en exekutatzen, eta eginbide batzuk ez daude erabilgarri ARMn oinarritutako sistema batean. Etorkizunean, egoera alda daiteke, egilea aktiboki proiektua garatzen ari baita, eta GitHub-en izar kopurua pixkanaka handitzen ari da - duela ez hainbeste temci ere iruzkinetan eztabaidatu Hacker News-en.

uarch-banku

Maila baxuko CPU funtzioen errendimendua ebaluatzeko utilitatea, Travis Downs ingeniariak (Travis Downs). Duela gutxi blogean ari da Errendimenduaren garrantzia GitHub Pages-en, benchmarking tresnei eta erlazionatutako beste gauzei buruz hitz egiten duena. Oro har, uarch-bench ospea irabazten hasi besterik ez da, baina dagoeneko nahiko ohikoa da aipatu Hacker News-eko biztanleak hari tematikoetan, erreferentziazko ebaluaziorako tresna gisa.

Uarch-bench-ek memoriaren errendimendua, datu paraleloak kargatzeko abiadura eta garbiketa lanak ebaluatzeko aukera ematen du YMM erregistroak. Programak sortutako benchmarking emaitzak nolakoak diren aurki daiteke biltegi ofizialean orriaren behealdean.

Aipatzekoa da uarch-bankua, temci bezala, deskonektatzen du Intel Turbo Boost funtzioa (automatikoki handitzen du prozesadorearen erlojuaren abiadura kargapean), probaren emaitzak koherenteak izan daitezen.

Oraingoz, proiektua garapenaren hasierako fasean dago, beraz, uarch-bench-ek ez du dokumentazio zehatzik eta funtzionamenduak akatsak izan ditzake - adibidez, zailtasunak ezagutzen dira Ryzen-en abiarazteko. Gainera, x86 arkitekturarako erreferentziak bakarrik onartzen dira. Egileak etorkizunean funtzionalitate gehiago gehituko dituela agintzen du eta garapenarekin bat egitera gonbidatzen zaitu.

likidoa

Intel, AMD eta ARMv8 prozesadoreekin Linux makinen errendimendua ebaluatzeko tresna multzo bat da. Alemaniako Hezkuntza eta Ikerketa Ministerio Federalaren babespean sortu zen 2017an eta kode irekian kaleratu zen.

Likwid tresnen artean, likwid-powermeter azpimarra dezakegu, sistemak kontsumitzen duen potentziari buruzko RAPL erregistroetako informazioa bistaratzen duena, baita likwid-setFrequencies ere, prozesadorearen maiztasuna kontrolatzeko aukera ematen duena. Zerrenda osoa ikus dezakezu biltegian aurkitu.

HPC ikerketan parte hartzen duten ingeniariek erabiltzen dute tresna. Adibidez, likwid-ekin obrak Alemaniako Erlangen-Nurembergeko Unibertsitateko (RRZE) Eskualdeko Informatika Zentroko espezialista talde bat. Tresna multzo honen garapenean ere parte aktiboa hartzen du.

Linux zerbitzarientzako erreferentziak: tresna irekien aukeraketa
Argazkia - Clem Onojeghuo β€” Zipriztindu

perf-tresnak

Linux zerbitzarien errendimendua aztertzeko tresna hau aurkeztu Brendan Gregg. Garatzaileetako bat da DTrace β€” Aplikazioak denbora errealean arazketarako trazatze-esparru dinamikoa.

perf-tools perf_events eta ftrace kernel azpisistemetan oinarritzen da. Haien utilitateek I/O latentzia aztertzeko aukera ematen dute (iosnoop), sistema-deien argumentuak jarraitzeko (unccount, funcslower, funcgraph eta functrace) eta fitxategien cachean (cachestat) "hits"-en estatistikak biltzeko. Azken kasu honetan, komandoak itxura hau du:

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

Komunitate handi samarra sortu da tresnaren inguruan (ia 6 mila izar GitHub-en). Eta badira perf-tresnak aktiboki erabiltzen dituzten enpresak, adibidez Netflix. Baina tresna gehiago garatzen eta aldatzen ari da (azkenaldian eguneraketak oso gutxitan kaleratu diren arren). Hori dela eta, bere funtzionamenduan akatsak gerta daitezke - egileak idazten du batzuetan perf-tresnek nukleoaren izua eragiten dutela.

llvm-mca

PUZ desberdinetan makina-kodeak zenbat baliabide informatiko beharko dituen iragartzen duen erabilgarritasuna. Bera ebaluatzen du Ziklo bakoitzeko jarraibideak (IPC) eta aplikazio jakin batek sortzen duen hardwarearen karga.

llvm-mca 2018an aurkeztu zen proiektuaren barruan LLVM, programak aztertzeko, eraldatzeko eta optimizatzeko sistema unibertsala garatzen ari dena. Jakina da llvm-mca-ren egileak softwarearen errendimendua aztertzeko irtenbide batean inspiratu zirela. Intel-en IACA eta alternatiba bat sortu nahi izan zuen. Eta erabiltzaileen arabera, tresnaren irteerak (beren diseinua eta kantitatea) benetan IACA antza du - adibidez hemen aurki daiteke. Hala ere, llvm-mca-k bakarrik onartzen du AT&T sintaxia, beraz, ziurrenik, bihurgailuak erabili beharko dituzu berarekin lan egiteko.

Gure blogetan eta sare sozialetan idazten duguna:

Linux zerbitzarientzako erreferentziak: tresna irekien aukeraketa "Mat. Wall Street eredua" edo nola optimizatu hodeiko kostuak

Linux zerbitzarientzako erreferentziak: tresna irekien aukeraketa Nola babestu zure Linux sistema: 10 aholku
Linux zerbitzarientzako erreferentziak: tresna irekien aukeraketa Arriskuak gutxitzea: nola ez zure datuak galdu

Linux zerbitzarientzako erreferentziak: tresna irekien aukeraketa Dagoeneko sistema-administrazioan parte hartzen duten edo hasteko asmoa dutenentzat liburuak
Linux zerbitzarientzako erreferentziak: tresna irekien aukeraketa Hautaketa: bost liburu eta sareei buruzko ikastaro bat

Linux zerbitzarientzako erreferentziak: tresna irekien aukeraketa1cloud.ru-n doako zerbitzu bat eskaintzen dugu "DNS hostinga" DNS erregistroak kontu pertsonal bakar batean kudea ditzakezu.

Iturria: www.habr.com

Gehitu iruzkin berria