Mabhenji eLinux maseva: kusarudzwa kwezvishandiso zvakavhurika

Isu tinoenderera mberi nekutaura nezve maturusi ekuongorora maitiro eCPU paLinux michina. Nhasi mune zvinyorwa: temci, uarch-bhenji, likwid, perf-zvishandiso uye llvm-mca.

Mamwe mabhenji:

Mabhenji eLinux maseva: kusarudzwa kwezvishandiso zvakavhurika
--ΠžΡ‚ΠΎ - Lukas Blazek - unsplash

temci

Ichi chishandiso chekufungidzira nguva yekuitwa kwezvirongwa zviviri. Chaizvoizvo, inokubvumira kuti uenzanise nguva yekuuraya yezvikumbiro zviviri. Munyori wezvishandiso aive mudzidzi wekuGermany, Johannes Bechberger, uyo akarigadzira sechikamu chedzidziso yake yekupedza kudzidza muna 2016. Nhasi chishandiso inoparadzirwa ne vane rezinesi pasi peGNU General Public License.

Johannes aida kugadzira chishandiso chaizomubvumira kuyera kushanda kwegadziriro yekombuta munzvimbo inodzorwa. Nokudaro, chimwe chezvinhu zvikuru zve temci kukwanisa kugadzirisa nzvimbo yekuedza. Semuyenzaniso, anogona: shandura CPU frequency maneja marongero, dzima hyper threading uye L1 neL2 cache, dzima turbo modhi paIntel processors, nezvimwe. Pakuenzanisa temci inoshandisa maturusi. nguva, perf_stat ΠΈ getrusage.

Izvi ndizvo zvinotaridzika semushandisi mune yekutanga kesi:

# 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

Zvichienderana nemhedzisiro yebenchmarking, iyo system inogadzira convenient report ine madhayagiramu, matafura uye magirafu, ayo anosiyanisa temci nemhinduro dzakafanana.

Pakati pezvikanganiso zve temci, "vechidiki" vayo vanobuda pachena. Nokuda kweizvi iye hazvisi zvose zvinotsigirwa hardware uye software zvigadziriso. Semuenzaniso, zvinonetsa kumhanya paMacOS, uye mamwe maficha haawanikwe pane ARM-based system. Mune ramangwana, mamiriro ezvinhu anogona kuchinja, sezvo munyori ari kushingaira kugadzira chirongwa, uye nhamba yenyeredzi paGitHub iri kuwedzera zvishoma nezvishoma - kwete kare kare temci kunyange. yakakurukurwa mumhinduro paHacker News.

uarch-bhenji

Chishandiso chekuongorora mashandiro eiyo yakaderera-level CPU mabasa, akagadzirwa nainjiniya Travis Downs (Travis Downs) Munguva pfupi yapfuura anga achibloga Performance Matters paGitHub Mapeji, inotaura nezve mabenchmarking maturusi uye zvimwe zvinhu zvine hukama. Kazhinji, uarch-bhenji ichangotanga kuwana mukurumbira, asi yatove yakajairika ataurwa vagari veHacker Nhau mune thematic tambo seyekuenda-kune chishandiso chekuenzanisa.

Uarch-bhenji rinokutendera kuti uongorore ndangariro kuita, parallel data kurodha kumhanya uye kuchenesa basa YMM marejista. Izvo mabhenji emhedzisiro anogadzirwa nechirongwa anotaridzika sei anogona kuwanikwa mudura repamutemo pazasi peji.

Izvo zvakakosha kucherechedza kuti uarch-bhenji, senge temci, disables Intel Turbo Boost basa (inongowedzera iyo processor wachi kumhanya pasi pemutoro) kuitira kuti mhedzisiro yebvunzo ienderane.

Parizvino, chirongwa ichi chiri mumatanho ekutanga ebudiriro, saka uarch-bhenji haina magwaro akadzama, uye mashandiro ayo anogona kunge aine bugs - semuenzaniso, matambudziko anozivikanwa nekutanga paRyzen. Zvakare, mabhenji chete e x86 architecture anotsigirwa. Munyori anovimbisa kuwedzera mamwe mashandiro mune ramangwana uye anokukoka iwe kuti ubatanidze budiriro.

mvura

Iyi seti yezvishandiso zvekuongorora mashandiro eLinux michina ine Intel, AMD uye ARMv8 processors. Yakagadzirwa pasi pekutungamirwa kweGerman Federal Ministry yeDzidzo uye Tsvagiridzo muna 2017 uye yakaburitswa mune yakavhurika sosi.

Pakati pezvishandiso zve likwid, tinogona kusimbisa likwid-powermeter, iyo inoratidza ruzivo kubva kuRAPL marejista pamusoro pesimba rinoshandiswa nehurongwa, pamwe ne likwid-setFrequencies, iyo inokubvumira kudzora processor frequency. Unogona kuona runyoro rwakakwana tsvaga mune repository.

Ichi chishandiso chinoshandiswa nevainjiniya vanobatanidzwa mukutsvagisa kweHPC. Somuenzaniso, ne likwid iri kushanda boka renyanzvi kubva kuRegional Computing Center yeYunivhesiti yeErlangen-Nuremberg (RRZE) muGermany. Anotorawo chikamu chinoshanda mukugadzira iyi seti yezvishandiso.

Mabhenji eLinux maseva: kusarudzwa kwezvishandiso zvakavhurika
--ΠžΡ‚ΠΎ - Clem Onojeghuo - unsplash

perf-zvishandiso

Ichi chishandiso chekuongorora mashandiro eLinux maseva kuunzwa Brendan Gregg. Ndiye mumwe wevagadziri DTrace -yakasimba yekutevera chimiro chekugadzirisa zvikumbiro munguva chaiyo.

perf-zvishandiso zvakavakirwa pane perf_events uye ftrace kernel subsystems. Zvishandiso zvavo zvinokutendera kuti uongorore I / O latency (iosnoop), track system yekufona nharo (unccount, funcslower, funcgraph uye functrace) uye kuunganidza nhamba dze "hits" mufaira cache (cachestat). Muchiitiko chekupedzisira, murairo unotaridzika seizvi:

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

Nharaunda yakakura yakaumbwa yakatenderedza chiridzwa (ingangoita zviuru zvitanhatu zvenyeredzi paGitHub) Uye kune makambani anoshingairira kushandisa perf-zvishandiso, semuenzaniso Netflix. Asi chishandiso chiri kuvandudzwa uye kugadziridzwa (kunyangwe zvigadziriso zvakaburitswa kashoma nguva pfupi yadarika). Nokudaro, kukanganisa kunogona kuitika mukushanda kwayo - munyori anonyora kuti dzimwe nguva perf-maturusi anokonzera kernel kutya.

llvm-mca

Chishandiso chinofanotaura kuti mangani ekombuta zviwanikwa zvemuchina kodhi anozoda pane akasiyana maCPU. Iye anoongorora Mirairo Pakutenderera (IPC) uye mutoro pane Hardware inogadzirwa neimwe application.

llvm-mca yakaratidzwa muna 2018 sechikamu chepurojekiti LLVM, iyo iri kugadzira hurongwa hwepasi rose hwekuongorora, kushandura uye kugadzirisa zvirongwa. Zvinozivikanwa kuti vanyori vellvm-mca vakafemerwa nemhinduro yekuongorora mashandiro esoftware. IACA kubva kuIntel ndokutsvaga kugadzira imwe nzira. Uye maererano nevashandisi, kuburitsa kwechishandiso (kurongeka kwavo uye huwandu) hwakafanana neIACA - muenzaniso. inogona kuwanikwa pano. Nekudaro, llvm-mca inobvuma chete AT&T syntax, saka uchanyanya kushandisa ma converters kushanda nawo.

Zvatinonyora pamusoro pemablog edu uye masocial network:

Mabhenji eLinux maseva: kusarudzwa kwezvishandiso zvakavhurika "Mat. Wall Street modhi" kana maitiro ekukwirisa mutengo wegore

Mabhenji eLinux maseva: kusarudzwa kwezvishandiso zvakavhurika Maitiro ekuchengetedza yako Linux system: 10 matipi
Mabhenji eLinux maseva: kusarudzwa kwezvishandiso zvakavhurika Kuderedza njodzi: sei kusarasikirwa nedata rako

Mabhenji eLinux maseva: kusarudzwa kwezvishandiso zvakavhurika Mabhuku kune avo vakatobatanidzwa muhurongwa hwekutonga kana vari kungoronga kutanga
Mabhenji eLinux maseva: kusarudzwa kwezvishandiso zvakavhurika Sarudzo: mabhuku mashanu uye kosi imwe pamanetiweki

Mabhenji eLinux maseva: kusarudzwa kwezvishandiso zvakavhurikaIsu pa1cloud.ru tinopa sevhisi yemahara "DNS kubata" Iwe unogona kubata DNS marekodhi mune imwechete account account.

Source: www.habr.com

Voeg