Standardet për serverët Linux: një përzgjedhje e mjeteve të hapura

Ne vazhdojmë të flasim për mjetet për vlerësimin e performancës së CPU në makinat Linux. Sot në materialin: temci, uarch-banch, likwid, perf-tools dhe llvm-mca.

Më shumë standarde:

Standardet për serverët Linux: një përzgjedhje e mjeteve të hapura
Фото - Lukas Blazek - Zhduk

temci

Ky është një mjet për të vlerësuar kohën e ekzekutimit të dy programeve. Në thelb, ju lejon të krahasoni kohën e ekzekutimit të dy aplikacioneve. Autori i shërbimeve ishte një student nga Gjermania, Johannes Bechberger, i cili e zhvilloi atë si pjesë e tezës së tij universitare në 2016. Mjeti i sotëm shperndare nga licencuar sipas Licencës së Përgjithshme Publike GNU.

Johannes donte të krijonte një mjet që do t'i lejonte atij të masë performancën e një sistemi kompjuterik në një mjedis të kontrolluar. Prandaj, një nga karakteristikat kryesore të temci është aftësia për të krijuar një mjedis testimi. Për shembull, një mund të: ndryshoni cilësimet e menaxherit të frekuencës së CPU, çaktivizoni hiper-fije dhe cache L1 dhe L2, çaktivizoni modalitetin turbo në procesorët Intel, etj. Për krahasimin, temci përdor mjete kohë, perf_stat и ngatërresa.

Kjo është se si duket mjeti në rastin e parë:

# 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

Bazuar në rezultatet e krahasimit, sistemi gjeneron raport i përshtatshëm me diagrame, tabela dhe grafikë, që dallon temcin nga zgjidhjet e ngjashme.

Ndër të metat e temcit spikat “rinia” e tij. Për shkak të kësaj ai jo gjithçka mbështetet konfigurimet e harduerit dhe softuerit. Për shembull, është e vështirë të ekzekutohet në macOS dhe disa veçori nuk janë të disponueshme në një sistem të bazuar në ARM. Në të ardhmen, situata mund të ndryshojë, pasi autori po zhvillon në mënyrë aktive projektin, dhe numri i yjeve në GitHub po rritet gradualisht - jo shumë kohë më parë temci madje diskutuar në komente në Hacker News.

uarch-stol

Një mjet për vlerësimin e performancës së funksioneve të CPU të nivelit të ulët, i zhvilluar nga inxhinieri Travis Downs (Travis Downs). Kohët e fundit ai ka qenë duke bërë blog Çështjet e Performancës në Faqet GitHub, e cila flet për mjetet e krahasimit dhe gjëra të tjera të lidhura. Në përgjithësi, stoli uarch sapo ka filluar të fitojë popullaritet, por tashmë është mjaft i zakonshëm i përmendur banorët e Hacker News në temat tematike si një mjet fillestar për krahasimin.

Uarch-bench ju lejon të vlerësoni performancën e kujtesës, shpejtësinë paralele të ngarkimit të të dhënave dhe punën e pastrimit Regjistrat YMM. Mund të gjendet se si duken rezultatet e krahasimit të gjeneruara nga programi në depon zyrtare në fund të faqes.

Vlen të theksohet se stoli uark, si temci, çaktivizon Funksioni Intel Turbo Boost (ai rrit automatikisht shpejtësinë e orës së procesorit nën ngarkesë) në mënyrë që rezultatet e testimit të jenë të qëndrueshme.

Për momentin, projekti është në fazat e hershme të zhvillimit, kështu që uarch-bench nuk ka dokumentacion të detajuar dhe funksionimi i tij mund të përmbajë gabime - për shembull, vështirësitë dihen me lëshimin në Ryzen. Gjithashtu, mbështeten vetëm standardet për arkitekturat x86. Autori premton të shtojë më shumë funksionalitet në të ardhmen dhe ju fton të bashkoheni me zhvillimin.

po ashtu

Ky është një grup mjetesh për vlerësimin e performancës së makinerive Linux me procesorë Intel, AMD dhe ARMv8. Ai u krijua nën kujdesin e Ministrisë Federale Gjermane të Arsimit dhe Kërkimit në 2017 dhe u lëshua në burim të hapur.

Ndër mjetet likwid, mund të veçojmë likwid-powermeter, i cili shfaq informacion nga regjistrat RAPL për fuqinë e konsumuar nga sistemi, si dhe likwid-setFrequencies, i cili ju lejon të kontrolloni frekuencën e procesorit. Ju mund të shihni listën e plotë gjeni në depo.

Mjeti përdoret nga inxhinierë të përfshirë në kërkimin e HPC. Për shembull, me likwid po punon një grup specialistësh nga Qendra Rajonale Informatike e Universitetit të Erlangen-Nurnberg (RRZE) në Gjermani. Ajo gjithashtu merr pjesë aktive në zhvillimin e këtij grupi mjetesh.

Standardet për serverët Linux: një përzgjedhje e mjeteve të hapura
Фото - Klem Onojeghuo - Zhduk

perf-mjete

Ky mjet për të analizuar performancën e serverëve Linux paraqitur Brendan Gregg. Ai është një nga zhvilluesit DGjurmë — një kornizë dinamike gjurmuese për korrigjimin e aplikacioneve në kohë reale.

perf-tools bazohet në nënsistemet perf_events dhe ftrace kernel. Shërbimet e tyre ju lejojnë të analizoni vonesën e hyrjes/daljes (iosnoop), të gjurmoni argumentet e thirrjeve të sistemit (unccount, funcslower, funcgraph dhe functrace) dhe të mbledhni statistika për "hits" në cache-in e skedarëve (cachestat). Në rastin e fundit, komanda duket si kjo:

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

Një komunitet mjaft i madh është formuar rreth instrumentit (pothuajse 6 mijë yje në GitHub). Dhe ka kompani që përdorin në mënyrë aktive perf-tools, për shembull Netflix. Por mjeti po zhvillohet dhe modifikohet më tej (megjithëse përditësimet janë lëshuar mjaft rrallë kohët e fundit). Prandaj, mund të ndodhin gabime në funksionimin e tij - autori shkruan se ndonjëherë perf-tools shkakton panik të kernelit.

llvm-mca

Një mjet që parashikon se sa burime kompjuterike do të kërkojë kodi i makinës në CPU të ndryshme. Ajo vlerëson Udhëzimet për cikël (IPC) dhe ngarkesën në harduerin që gjeneron një aplikacion i caktuar.

llvm-mca u prezantua në vitin 2018 si pjesë e projektit LLVM, e cila po zhvillon një sistem universal për analizën, transformimin dhe optimizimin e programeve. Dihet që autorët e llvm-mca u frymëzuan nga një zgjidhje për analizimin e performancës së softuerit IACA nga Intel dhe u përpoq të krijonte një alternativë. Dhe sipas përdoruesve, prodhimi i mjetit (paraqitja dhe sasia e tyre) i ngjan vërtet IACA - shembull mund të gjenden këtu. Sidoqoftë, llvm-mca pranon vetëm Sintaksa AT&T, kështu që me shumë mundësi do t'ju duhet të përdorni konvertues për të punuar me të.

Për çfarë shkruajmë në bloget dhe rrjetet tona sociale:

Standardet për serverët Linux: një përzgjedhje e mjeteve të hapura "Mat. Modeli i Wall Street" ose si të optimizoni kostot e cloud

Standardet për serverët Linux: një përzgjedhje e mjeteve të hapura Si të siguroni sistemin tuaj Linux: 10 këshilla
Standardet për serverët Linux: një përzgjedhje e mjeteve të hapura Minimizimi i rreziqeve: si të mos humbni të dhënat tuaja

Standardet për serverët Linux: një përzgjedhje e mjeteve të hapura Libra për ata që tashmë janë të përfshirë në administrimin e sistemit ose sapo planifikojnë të fillojnë
Standardet për serverët Linux: një përzgjedhje e mjeteve të hapura Përzgjedhja: pesë libra dhe një kurs për rrjetet

Standardet për serverët Linux: një përzgjedhje e mjeteve të hapuraNe në 1cloud.ru ofrojmë një shërbim falas "Pritja DNS" Ju mund të menaxhoni të dhënat DNS në një llogari të vetme personale.

Burimi: www.habr.com

Shto një koment