Nga tohu tohu mo nga kaitoro Linux: he whiringa taputapu tuwhera
Kei te korero tonu matou mo nga taputapu mo te aromatawai i nga mahi CPU i runga i nga miihini Linux. I tenei ra i roto i nga rauemi: temci, uarch-bench, likwid, perf-tools me llvm-mca.
He taputapu tenei mo te whakatau tata i te wa mahi o nga kaupapa e rua. Ko te tikanga, ka taea e koe te whakataurite i te wa mahi o nga tono e rua. Ko te kaituhi o te whaipainga he akonga mai i Tiamana, a Johannes Bechberger, nana i whakawhanake hei waahanga o tana tuhinga paetahi i te tau 2016. Te taputapu o tenei ra tohaina e kua raihanatia i raro i te Raihana Katoa a GNU.
I hiahia a Johannes ki te hanga taputapu e taea ai e ia te ine i te mahinga o te punaha rorohiko i roto i te taiao whakahaere. Na reira, ko tetahi o nga ahuatanga matua o te temci ko te kaha ki te whakarite i tetahi taiao whakamatautau. Hei tauira, taea: huri i nga tautuhinga kaiwhakahaere auau PTM, mono miro nui me nga keteroki L1 me L2, whakawetohia te aratau turbo i runga i nga tukatuka Intel, me etahi atu. wā, perf_stat и tikiti.
Koinei te ahua o te taputapu i te keehi tuatahi:
# 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
I runga i nga hua tohu tohu, ka whakaputa te punaha pūrongo watea me nga hoahoa, nga ripanga me nga kauwhata, e wehewehe ana i te temci mai i nga otinga rite.
I roto i nga ngoikoretanga o temci, ko tona "rangatahi" ka tu. Na tenei ia kaore nga mea katoa e tautokohia ana whirihoranga taputapu me te rorohiko. Hei tauira, he uaua ki te whakahaere i runga i te macOS, a, ko etahi ahuatanga kaore i te waatea i runga i te punaha ARM. I nga wa kei te heke mai, ka rereke pea te ahuatanga, i te mea kei te kaha te kaituhi ki te whakawhanake i te kaupapa, a kei te piki haere te maha o nga whetu i runga i a GitHub - kaore i roa i mua ko temci ahakoa i korerohia i roto i nga korero i runga i te Hacker News.
He whaipainga mo te arotake i te mahinga o nga mahi CPU taumata-iti, i hangaia e te miihini Travis Downs (Ko Travis Raro). No tata nei kua panui ia Nga Take Mahi i runga i nga wharangi GitHub, e korero ana mo nga taputapu tohu tohu me etahi atu mea e pa ana. I te nuinga o te waa, kei te timata te uarch-bench ki te rongonui, engari he mea noa whakahuatia nga kainoho o Hacker News i roto i nga miro kaupapa hei taputapu haere mo te tohu tohu.
Ko te Uarch-bench ka taea e koe te arotake i nga mahi mahara, te tere uta raraunga whakarara me te mahi horoi Rehita YMM. Ka kitea te ahua o nga hua tohu tohu i mahia e te hotaka i roto i te whare pupuri mana kei raro o te wharangi.
He mea tika kia mahara ko te uarch-bench, penei i te temci, ka monokia Ko te mahi a Intel Turbo Boost (ka whakanui aunoa i te tere karaka i raro i te utaina) kia rite ai nga hua whakamatautau.
I tenei wa, ko te kaupapa kei te timatanga o te whakawhanaketanga, no reira karekau he tuhinga taipitopito a uarch-bench, a kei roto pea i ana mahi nga pepeke - hei tauira, ka mohiotia nga uaua me te whakarewatanga i runga i a Ryzen. Ano, ko nga tohu tohu mo nga hoahoanga x86 anake e tautokohia ana. Ka oati te kaituhi ki te taapiri atu i nga mahi a muri ake nei ka tono koe kia uru atu ki te whanaketanga.
He huinga taputapu tenei mo te arotake i te mahinga o nga miihini Linux me nga kaitoro Intel, AMD me ARMv8. I hangaia i raro i te maru o te Tiamana Federal Ministry of Education and Research i te tau 2017 ka tukuna ki te puna tuwhera.
I roto i nga taputapu likwid, ka taea e matou te whakanui i te likwid-powermeter, e whakaatu ana i nga korero mai i nga rehita RAPL mo te mana e pau ana i te punaha, me te likwid-setFrequencies, e taea ai e koe te whakahaere i te auau tukatuka. Ka taea e koe te kite i te rarangi katoa kitea i roto i te putunga.
Ka whakamahia te taputapu e nga miihini e uru ana ki te rangahau HPC. Hei tauira, me te likwid mahi he roopu tohunga mai i te Whare Rorohiko Rohe o te Whare Wananga o Erlangen-Nuremberg (RRZE) i Tiamana. Ka whai waahi ano ia ki te whanaketanga o tenei huinga taputapu.
Ko tenei taputapu hei tātari i nga mahi a nga kaitoro Linux whakaurua Brendan Gregg. Ko ia tetahi o nga kaihanga DTrace — he anga whaiwhai hihiko mo te patuiro i nga tono i roto i te waa tuturu.
Ko nga taputapu-perf e ahu mai ana i nga perf_events me te ftrace kernel subsystems. Ma o raatau taputapu ka taea e koe te tarai i te I/O torohūtanga (iosnoop), te whai i nga tohenga waea a te punaha (kaore i te tatau, te puhoi, te funcgraph me te functrace) me te kohi tatauranga mo nga "hits" i roto i te keteroki konae (cachestat). I te keehi whakamutunga, penei te ahua o te whakahau:
Kua hanga he hapori tino nui huri noa i te taputapu (tata ki te 6 mano nga whetu i runga i GitHub). A he kamupene kei te kaha te whakamahi i nga taputapu perf, hei tauira Netflix. Engari kei te whanakehia, kei te whakarereketia ano te taputapu (ahakoa he iti noa te tuku whakahōutanga i enei ra). Na reira, ka puta he hapa i roto i tana mahi - ka tuhia e te kaituhi ko etahi wa ko nga taputapu-perf ka puta te mataku o te kernel.
He taputapu e matapae ana e hia nga rauemi rorohiko e hiahiatia ana e te waehere miihini i runga i nga PTM rereke. Ko ia arotake Tohutohu mo ia Porohita (IPC) me te uta i runga i nga taputapu ka mahia e tetahi tono.
I whakaatuhia a llvm-mca i te tau 2018 hei waahanga o te kaupapa LLVM, e whakawhanake ana i te punaha mo te wetewete, te whakarereke me te arotautanga o nga kaupapa. E mohiotia ana ko nga kaituhi o llvm-mca i whakaaweahia e tetahi otinga mo te tātari i nga mahi rorohiko. IACA mai i Intel me te whai ki te hanga i tetahi huarahi rereke. Na e ai ki nga kaiwhakamahi, ko te putanga o te taputapu (to ratou whakatakotoranga me te nui) he rite tonu ki te IACA - tauira ka kitea i konei. Heoi, ka whakaae noa a llvm-mca AT&T wetereo, no reira me whakamahi koe i nga kaitahuri hei mahi tahi.
He aha ta matou e tuhi ana i runga i a maatau blog me nga whatunga hapori: