Zizindikiro za ma seva a Linux: kusankha kwa zida zotseguka
Tikupitiriza kulankhula za zida zowunika momwe CPU ikuyendera pamakina a Linux. Masiku ano muzinthu: temci, uarch-bench, likwid, perf-zida ndi llvm-mca.
Ichi ndi chida choyezera nthawi yochitira mapulogalamu awiri. Kwenikweni, zimakupatsani mwayi wofananiza nthawi yogwiritsira ntchito ziwiri. Wolemba za utility anali wophunzira waku Germany, Johannes Bechberger, yemwe adapanga ngati gawo la malingaliro ake a bachelor mu 2016. Lero ndi chida wogawidwa ndi zololedwa pansi pa GNU General Public License.
Johannes ankafuna kupanga chida chomwe chingamuthandize kuyeza momwe makompyuta amagwirira ntchito m'malo olamulidwa. Chifukwa chake, chimodzi mwazinthu zazikulu za temci ndikutha kukhazikitsa malo oyeserera. Mwachitsanzo, mungathe: sinthani makonda a CPU frequency manager, zimitsani hyper-threading ndi L1 ndi L2 cache, zimitsani turbo mode pa Intel processors, etc. Pa benchmarking temci amagwiritsa zida nthawi, perf_stat ΠΈ getrusage.
Izi ndi zomwe zothandiza zimawoneka ngati koyamba:
# 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
Kutengera zotsatira za benchmarking, dongosolo limapanga lipoti lothandiza okhala ndi zithunzi, matebulo ndi ma graph, omwe amasiyanitsa temci ndi mayankho ofanana.
Pakati pa zofooka za temci, "unyamata" wake umaonekera. Chifukwa cha ichi iye sikuti zonse zimathandizidwa hardware ndi mapulogalamu kasinthidwe. Mwachitsanzo, ndizovuta kuyendetsa pa macOS, ndipo zina sizipezeka pamakina a ARM. M'tsogolomu, zinthu zikhoza kusintha, monga wolemba akugwira ntchito mwakhama, ndipo chiwerengero cha nyenyezi pa GitHub chikuwonjezeka pang'onopang'ono - osati kale kwambiri temci ngakhale. anakambidwa mu ndemanga pa Hacker News.
Chida chowunikira momwe magwiridwe antchito a CPU apansi, opangidwa ndi injiniya Travis Downs (Travis Downs). Posachedwapa wakhala akulemba mabulogu Zokhudza Kachitidwe pa Masamba a GitHub, omwe amalankhula za zida zofananira ndi zinthu zina zofananira. Nthawi zambiri, benchi ya uarch ikungoyamba kutchuka, koma nthawi zambiri wotchulidwa Anthu okhala ku Hacker News mu ulusi wamutu ngati chida cholumikizira.
Uarch-bench imakupatsani mwayi wowunika momwe kukumbukira kumagwirira ntchito, kuthamanga kwa data yofananira ndi ntchito yoyeretsa Zolemba za YMM. Momwe zotsatira zofananira zopangidwa ndi pulogalamuyi zimawonekera zitha kupezeka m'malo ovomerezeka pansi pa tsamba.
Ndizofunikira kudziwa kuti uarch-bench, ngati temci, amadula Ntchito ya Intel Turbo Boost (imangowonjezera liwiro la wotchi ya purosesa) kuti zotsatira zake zikhale zofananira.
Pakalipano, polojekitiyi ili kumayambiriro kwa chitukuko, kotero uarch-bench ilibe zolemba zambiri, ndipo ntchito yake ikhoza kukhala ndi nsikidzi - mwachitsanzo, zovuta zimadziwika ndi kukhazikitsa pa Ryzen. Komanso, ma benchmarks okhawo a x86 amathandizidwa. Wolemba akulonjeza kuti adzawonjezera magwiridwe antchito mtsogolomo ndikukuitanani kuti mulowe nawo pachitukuko.
Izi ndi zida zowunika momwe makina a Linux amagwirira ntchito ndi ma processor a Intel, AMD ndi ARMv8. Idapangidwa mothandizidwa ndi Unduna wa Zamaphunziro ndi Kafukufuku ku Germany mu 2017 ndikumasulidwa kugwero lotseguka.
Pakati pa zida za likwid, titha kuwonetsa likwid-powermeter, yomwe imawonetsa zambiri kuchokera ku zolembera za RAPL za mphamvu zomwe zimagwiritsidwa ntchito ndi dongosolo, komanso likwid-setFrequencies, zomwe zimakulolani kuti muwongolere pafupipafupi purosesa. Mutha kuwona mndandanda wathunthu pezani m'nkhokwe.
Chidachi chimagwiritsidwa ntchito ndi mainjiniya omwe akuchita nawo kafukufuku wa HPC. Mwachitsanzo, ndi likwid amagwira ntchito gulu la akatswiri ochokera ku Regional Computing Center ya University of Erlangen-Nuremberg (RRZE) ku Germany. Amagwiranso ntchito popanga zida izi.
Chida ichi chowunikira momwe ma seva a Linux amagwirira ntchito anayambitsa Brendan Gregg. Iye ndi m'modzi mwa opanga Malangizo - njira yotsatirira yosinthira mafayilo munthawi yeniyeni.
perf-zida zimatengera perf_events ndi ftrace kernel subsystems. Zida zawo zimakulolani kusanthula I/O latency (iosnoop), kutsatira njira zoyimbira foni (unccount, funcslower, funcgraph ndi functrace) ndikusonkhanitsa ziwerengero za "kugunda" mu cache (cachestat). Pomaliza, lamulo likuwoneka motere:
Chida chomwe chimalosera kuchuluka kwa makina ogwiritsira ntchito makompyuta omwe angafune pa ma CPU osiyanasiyana. Iye amawunika Malangizo Pa Mzere uliwonse (IPC) ndi katundu pa hardware yomwe pulogalamu inayake imapanga.
llvm-mca idaperekedwa mu 2018 ngati gawo la ntchitoyi Zithunzi za LLVM, yomwe ikupanga dongosolo lapadziko lonse lapansi lowunikira, kusintha ndi kukhathamiritsa kwa mapulogalamu. Zimadziwika kuti olemba llvm-mca adadzozedwa ndi yankho pakuwunika momwe mapulogalamu amagwirira ntchito. IACA kuchokera ku Intel ndipo adayesetsa kupanga njira ina. Ndipo malinga ndi ogwiritsa ntchito, kutulutsa kwa chida (mawonekedwe awo ndi kuchuluka kwake) kumafanana ndi IACA - chitsanzo. angapezeke pano. Komabe, llvm-mca amangovomereza Chithunzi cha AT&T, kotero muyenera kugwiritsa ntchito otembenuza kuti mugwire nawo ntchito.
Zomwe timalemba pamabulogu athu ndi malo ochezera: