Benchmarks foar Linux-tsjinners: in seleksje fan iepen ark

Wy prate fierder oer ark foar it beoardieljen fan CPU-prestaasjes op Linux-masines. Hjoed yn it materiaal: temci, uarch-bench, likwid, perf-tools en llvm-mca.

Mear benchmarks:

Benchmarks foar Linux-tsjinners: in seleksje fan iepen ark
Фото - Lukas Blazek - Unsplash

temci

Dit is in ark foar it skatten fan de útfieringstiid fan twa programma's. Yn essinsje lit it jo de útfieringstiid fan twa applikaasjes fergelykje. De skriuwer fan it nut wie in studint út Dútslân, Johannes Bechberger, dy't it ûntwikkele as ûnderdiel fan syn undergraduate dissertaasje yn 2016. It ark fan hjoed ferspraat troch lisinsje ûnder de GNU General Public License.

Johannes woe in ark meitsje dat him de prestaasjes fan in kompjûtersysteem yn in kontrolearre omjouwing mjitte soe. Dêrom is ien fan 'e haadfunksjes fan temci de mooglikheid om in testomjouwing yn te stellen. Bygelyks, kin: feroarje CPU frekwinsje manager ynstellings, útskeakelje hyper threading en L1- en L2-caches, skeakelje turbo-modus út op Intel-processors, ensfh. Foar benchmarking brûkt temci ark tiid, perf_stat и getrusage.

Dit is hoe't it nut yn it earste gefal liket:

# 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

Op grûn fan de benchmarkingresultaten genereart it systeem handige rapport mei diagrammen, tabellen en grafiken, dy't ûnderskiedt temci fan ferlykbere oplossings.

Under de tekoartkommingen fan temci stiet har "jeugd" út. Fanwegen dit hy net alles wurdt stipe hardware en software konfiguraasjes. Bygelyks, it is lestich om te rinnen op macOS, en guon funksjes binne net beskikber op in ARM-basearre systeem. Yn 'e takomst kin de situaasje feroarje, om't de auteur it projekt aktyf ûntwikkelet, en it oantal stjerren op GitHub wurdt stadichoan tanimmend - net sa lang lyn temci sels besprutsen yn de kommentaren op Hacker Nijs.

uarch-bank

In hulpprogramma foar it evaluearjen fan de prestaasjes fan CPU-funksjes op leech nivo, ûntwikkele troch yngenieur Travis Downs (Travis Downs). De lêste tiid hat er blogge Performance Matters op GitHub-siden, dy't praat oer benchmarking-ark en oare relatearre dingen. Yn 't algemien begjint uarch-bank gewoan populariteit te winnen, mar al hiel faak neamd ynwenners fan Hacker News yn tematyske threads as in go-to-ark foar benchmarking.

Uarch-bank kinne jo evaluearje ûnthâld prestaasjes, parallel gegevens laden snelheid en skjinmeitsjen wurk YMM registers. Hoe't de benchmarkingresultaten dy't troch it programma binne generearre der útsjen kinne wurde fûn yn 'e offisjele repository ûnderoan de side.

It is de muoite wurdich op te merken dat uarch-bank, lykas temci, losket Intel Turbo Boost funksje (it fergruttet automatysk de prosessor klok snelheid ûnder load) sadat de test resultaten binne konsekwint.

Foar no is it projekt yn 'e iere stadia fan ûntwikkeling, dus uarch-bench hat gjin detaillearre dokumintaasje, en syn wurking kin bugs befetsje - bygelyks, swierrichheden binne bekend mei lansearring op Ryzen. Ek wurde allinich benchmarks foar x86-arsjitektuer stipe. De skriuwer belooft yn 'e takomst mear funksjonaliteit ta te foegjen en noeget jo út om mei te dwaan oan' e ûntwikkeling.

floeistof

Dit is in set ark foar it evaluearjen fan de prestaasjes fan Linux-masines mei Intel-, AMD- en ARMv8-processors. It waard makke ûnder auspysjes fan it Dútske Federale Ministearje fan Underwiis en Undersyk yn 2017 en frijlitten yn iepen boarne.

Under de likwid-ark kinne wy ​​markearje likwid-powermeter, dy't ynformaasje toant út RAPL-registers oer de krêft konsumearre troch it systeem, lykas likwid-setFrequencies, wêrtroch jo de prosessorfrekwinsje kinne kontrolearje. Jo kinne de folsleine list sjen fine yn 'e repository.

It ark wurdt brûkt troch yngenieurs belutsen by HPC-ûndersyk. Bygelyks mei likwid wurket in groep spesjalisten fan it Regionaal Computing Center fan 'e Universiteit fan Erlangen-Nürnberg (RRZE) yn Dútslân. Se nimt ek aktyf diel oan 'e ûntwikkeling fan dizze set ark.

Benchmarks foar Linux-tsjinners: in seleksje fan iepen ark
Фото - Clem Onojeghuo - Unsplash

perf-ark

Dit ark foar it analysearjen fan de prestaasjes fan Linux-tsjinners yntrodusearre Brendan Gregg. Hy is ien fan de ûntwikkelders DTrace - in dynamysk tracing-ramt foar it debuggen fan applikaasjes yn realtime.

perf-tools is basearre op de perf_events en ftrace kernel subsystemen. Harren nutsbedriuwen kinne jo analysearje I / O latency (iosnoop), track systeem call arguminten (unccount, funclower, funcgraph en functrace) en sammelje statistiken oer "hits" yn de triem cache (cachestat). Yn it lêste gefal sjocht it kommando der sa út:

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

In frij grutte mienskip is foarme om it ynstrumint (hast 6 tûzen stjerren op GitHub). En der binne bedriuwen dy't bygelyks perf-ark aktyf brûke Netflix. Mar it ark wurdt fierder ûntwikkele en oanpast (hoewol't updates de lêste tiid frij seldsum binne frijlitten). Dêrom kinne flaters foarkomme yn syn wurking - de skriuwer skriuwt dat soms perf-ark feroarsake kernel panyk.

lvm-mca

In hulpprogramma dat foarseit hoefolle komputerboarnen masinekoade sil fereaskje op ferskate CPU's. Sy evaluearret Ynstruksjes per syklus (CPI) en de lading op 'e hardware dy't in bepaalde applikaasje genereart.

llvm-mca waard yn 2018 presintearre as ûnderdiel fan it projekt LLVM, dy't in universele systeem ûntwikkelet foar analyse, transformaasje en optimisaasje fan programma's. It is bekend dat de auteurs fan llvm-mca waarden ynspirearre troch in oplossing foar it analysearjen fan softwareprestaasjes IACA fan Intel en besocht in alternatyf te meitsjen. En neffens brûkers liket de útfier fan it ark (har yndieling en kwantiteit) echt op IACA - foarbyld is hjir te finen. Llvm-mca akseptearret lykwols allinich AT&T syntaksis, dus jo sille nei alle gedachten omrekkeners moatte brûke om mei te wurkjen.

Wat wy skriuwe oer op ús blogs en sosjale netwurken:

Benchmarks foar Linux-tsjinners: in seleksje fan iepen ark "Matte. Wall Street-model" of hoe't jo wolkkosten kinne optimalisearje

Benchmarks foar Linux-tsjinners: in seleksje fan iepen ark Hoe jo jo Linux-systeem befeiligje: 10 tips
Benchmarks foar Linux-tsjinners: in seleksje fan iepen ark Risiko-minimalisaasje: hoe kinne jo jo gegevens net ferlieze

Benchmarks foar Linux-tsjinners: in seleksje fan iepen ark Boeken foar dyjingen dy't al belutsen binne by systeemadministraasje of gewoan fan plan binne om te begjinnen
Benchmarks foar Linux-tsjinners: in seleksje fan iepen ark Seleksje: fiif boeken en ien kursus oer netwurken

Benchmarks foar Linux-tsjinners: in seleksje fan iepen arkWy by 1cloud.ru biede in fergese tsjinst "DNS-hosting" Jo kinne DNS-records beheare yn ien persoanlik akkount.

Boarne: www.habr.com

Add a comment