Nā hōʻailona no nā kikowaena Linux: kahi koho o nā mea hana wehe

Ke hoʻomau nei mākou e kamaʻilio e pili ana i nā mea hana no ka loiloi ʻana i ka hana CPU ma nā mīkini Linux. I kēia lā i ka mea: temci, uarch-bench, likwid, perf-tools a me llvm-mca.

Nā hōʻailona hou aʻe:

Nā hōʻailona no nā kikowaena Linux: kahi koho o nā mea hana wehe
Ото - Lukas Blazek — Unsplash

temci

He mea hana kēia no ka helu ʻana i ka manawa hoʻokō o nā papahana ʻelua. ʻO ka mea nui, hiki iā ʻoe ke hoʻohālikelike i ka manawa hoʻokō o nā noi ʻelua. ʻO ka mea kākau o ka pono he haumāna mai Kelemania, ʻo Johannes Bechberger, nāna i hoʻomohala iā ia ma ke ʻano he ʻāpana o kāna tesis lae pua ma 2016. Mea paahana o keia la mahele ʻia e laikini ma lalo o ka GNU General Public License.

Ua makemake ʻo Johannes e hana i kahi mea hana e hiki ai iā ia ke ana i ka hana o kahi ʻōnaehana kamepiula ma kahi ʻano hoʻomalu. No laila, ʻo kekahi o nā hiʻohiʻona nui o ka temci ka hiki ke hoʻonohonoho i kahi ʻano hoʻāʻo. ʻo kahi laʻana, hiki: hoʻololi i nā hoʻonohonoho hoʻonohonoho hoʻonohonoho CPU frequency manager, hoʻopau hyper threading a me L1 a me L2 huna, e hoopau i ke ano turbo ma ka Intel processors, etc. manawa, perf_stat и hoʻohana.

ʻO kēia ke ʻano o ka pono i ka hihia mua:

# 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

Ma muli o nā hopena benchmarking, hana ka ʻōnaehana hōʻike kūpono me nā kiʻi, nā papa a me nā kiʻi, e hoʻokaʻawale i ka temci mai nā hopena like.

Ma waena o nā hemahema o temci, ʻo kona "'ōpiopio" ke kū nei. Ma muli o kēia ʻaʻole kākoʻo ʻia nā mea a pau lako lako a me na lako polokalamu. No ka laʻana, paʻakikī ke holo ma macOS, a ʻaʻole loaʻa kekahi mau hiʻohiʻona ma kahi ʻōnaehana ARM. I ka wā e hiki mai ana, hiki ke loli ke kūlana, ʻoiai ke hoʻomohala nei ka mea kākau i ka papahana, a ke piʻi mālie nei ka helu o nā hōkū ma GitHub - ʻaʻole i lōʻihi loa ka manawa i hala. kūkākūkā ʻia ma nā manaʻo ma ka Hacker News.

uarch-bench

He mea pono no ka loiloi ʻana i ka hana o nā hana CPU haʻahaʻa haʻahaʻa, i hoʻomohala ʻia e ka ʻenekinia Travis Downs (ʻO Travis Downs). I kēia mau lā ua blog ʻo ia Nā Hana Hana ma nā ʻaoʻao GitHub, e kamaʻilio e pili ana i nā mea hana benchmarking a me nā mea pili ʻē aʻe. Ma keʻano laulā, ua hoʻomaka ka uarch-bench e loaʻa ka kaulana, akā ua maʻamau i oleloia poʻe kamaʻāina o Hacker News i nā pae kumuhana ma ke ʻano he mea hana no ka benchmarking.

Uarch-bench hiki iā ʻoe ke loiloi i ka hana hoʻomanaʻo, ka wikiwiki o ka hoʻouka ʻana i ka ʻikepili like a me ka hana hoʻomaʻemaʻe Kakau inoa YMM. Hiki ke ʻike ʻia ke ʻano o nā hopena benchmarking i hana ʻia e ka papahana i loko o ka waihona kūhelu ma ka lalo o ka ʻaoʻao.

He mea pono e hoʻomaopopo i kēlā uarch-bench, e like me temci, disables Hana ʻo Intel Turbo Boost (hoʻonui ʻo ia i ka wikiwiki o ka uaki ma lalo o ka hoʻouka ʻana) i kūlike nā hopena hōʻike.

I kēia manawa, aia ka papahana i ka hoʻomaka mua o ka hoʻomohala ʻana, no laila ʻaʻohe palapala kikoʻī o uarch-bench, a aia paha kāna hana i nā pōpoki - no ka laʻana, ʻike ʻia nā pilikia me ka hoʻomaka ʻana ma Ryzen. Eia kekahi, kākoʻo wale ʻia nā pae kuhikuhi no nā hale kiʻi x86. Hoʻohiki ka mea kākau e hoʻohui i nā hana hou aʻe i ka wā e hiki mai ana a kono iā ʻoe e komo i ka hoʻomohala ʻana.

wai wai

He papa hana kēia no ka loiloi ʻana i ka hana o nā mīkini Linux me nā kaʻina hana Intel, AMD a me ARMv8. Ua hoʻokumu ʻia ma lalo o ka mana o ka German Federal Ministry of Education and Research ma 2017 a hoʻokuʻu ʻia i ka open source.

Ma waena o nā mea hana likwid, hiki iā mākou ke hōʻike i ka likwid-powermeter, e hōʻike ana i ka ʻike mai nā papa inoa RAPL e pili ana i ka mana i hoʻopau ʻia e ka ʻōnaehana, a me ka likwid-setFrequencies, e hiki ai iā ʻoe ke hoʻomalu i ka frequency processor. Hiki iā ʻoe ke ʻike i ka papa inoa piha loaa ma ka waihona.

Hoʻohana ʻia ka mea hana e nā ʻenekinia i komo i ka noiʻi HPC. No ka laʻana, me likwid nā hana he hui o nā loea mai ka Regional Computing Center o ke Kulanui o Erlangen-Nuremberg (RRZE) ma Kelemānia. Ua komo pū ʻo ia i ka hoʻomohala ʻana i kēia pūʻulu o nā mea hana.

Nā hōʻailona no nā kikowaena Linux: kahi koho o nā mea hana wehe
Ото - Clem Onojeghuo — Unsplash

nā mea hana perf

ʻO kēia mea hana no ka nānā ʻana i ka hana o nā kikowaena Linux hoopuka Brendan Gregg. ʻO ia kekahi o nā mea hoʻomohala Hōʻailona - kahi hoʻolālā hoʻoikaika no ka hoʻopau ʻana i nā noi i ka manawa maoli.

Hoʻokumu ʻia nā perf-tools ma nā perf_events a me ftrace kernel subsystems. ʻO kā lākou mau pono e ʻae iā ʻoe e kālailai I/O latency (iosnoop), track system call arguments (unccount, funcslower, funcgraph and functrace) a hōʻiliʻili i nā ʻikepili ma nā "hits" i ka waihona waihona (cachestat). I ka hihia hope, ua like ke ʻano o ke kauoha:

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

Ua hoʻokumu ʻia kahi kaiāulu nui a puni ka mea kani (aneane 6 tausani hōkū ma GitHub). A aia kekahi mau hui e hoʻohana ikaika nei i nā mea hana perf, no ka laʻana Netflix. Akā ke hoʻomohala hou ʻia a hoʻololi ʻia ka mea hana (ʻoiai ua hoʻokuʻu ʻia nā mea hou i kēia manawa. No laila, hiki mai nā hewa i kāna hana - kākau ka mea kākau i kekahi manawa ke kumu o nā mea hana perf i ka weliweli kernel.

llvm-mca

He mea hoʻohana e wānana i ka nui o ka helu helu mīkini waiwai e koi ai i nā CPU like ʻole. ʻO ia loiloi Nā ʻōlelo aʻo i kēlā me kēia pōʻaiapuni (IPC) a me ka ukana ma luna o ka lakohana i hana ʻia e kekahi noi.

Ua hōʻike ʻia ʻo llvm-mca ma 2018 ma ke ʻano o ka papahana LLVM, ka mea e hoʻomohala nei i kahi ʻōnaehana ākea no ka nānā ʻana, hoʻololi a me ka loiloi o nā papahana. Ua ʻike ʻia ua hoʻoikaika ʻia nā mea kākau o llvm-mca e kahi hopena no ka nānā ʻana i ka hana polokalamu. IACA mai Intel a ʻimi e hana i kahi ʻokoʻa. A e like me nā mea hoʻohana, ua like ka huahana o ka mea hana (ko lākou hoʻolālā a me ka nui) i ka IACA - hoʻohālike hiki ke loaa maanei. Eia naʻe, ʻae wale ʻo llvm-mca ʻO ka syntax AT&T, no laila pono ʻoe e hoʻohana i nā mea hoʻololi e hana pū me ia.

ʻO nā mea a mākou e kākau ai ma kā mākou blog a me nā ʻoihana pūnaewele:

Nā hōʻailona no nā kikowaena Linux: kahi koho o nā mea hana wehe "Mat. Wall Street model" a pehea e hoʻonui ai i nā kumukūʻai ao

Nā hōʻailona no nā kikowaena Linux: kahi koho o nā mea hana wehe Pehea e hoʻopaʻa ai i kāu ʻōnaehana Linux: 10 ʻōlelo aʻoaʻo
Nā hōʻailona no nā kikowaena Linux: kahi koho o nā mea hana wehe Hoʻemi i nā pilikia: pehea e nalowale ai kāu ʻikepili

Nā hōʻailona no nā kikowaena Linux: kahi koho o nā mea hana wehe Nā puke no ka poʻe i komo mua i ka hoʻokele ʻōnaehana a i ʻole e hoʻolālā nei e hoʻomaka
Nā hōʻailona no nā kikowaena Linux: kahi koho o nā mea hana wehe Koho: ʻelima mau puke a hoʻokahi papa ma nā pūnaewele

Nā hōʻailona no nā kikowaena Linux: kahi koho o nā mea hana weheHāʻawi mākou ma 1cloud.ru i kahi lawelawe manuahi "Hoʻokipa DNS" Hiki iā ʻoe ke hoʻokele i nā moʻolelo DNS i hoʻokahi moʻokāki pilikino.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka