Mga Benchmark para sa mga server ng Linux: isang seleksyon ng mga bukas na tool

Patuloy kaming nag-uusap tungkol sa mga tool para sa pagtatasa ng pagganap ng CPU sa mga makina ng Linux. Ngayon sa materyal: temci, uarch-bench, likwid, perf-tools at llvm-mca.

Higit pang mga benchmark:

Mga Benchmark para sa mga server ng Linux: isang seleksyon ng mga bukas na tool
--ΠžΡ‚ΠΎ - Lukas Blazek β€” Unsplash

temci

Ito ay isang tool para sa pagtatantya ng oras ng pagpapatupad ng dalawang mga programa. Mahalaga, pinapayagan ka nitong ihambing ang oras ng pagpapatupad ng dalawang application. Ang may-akda ng utility ay isang mag-aaral mula sa Germany, si Johannes Bechberger, na bumuo nito bilang bahagi ng kanyang bachelor's thesis noong 2016. Kagamitan ngayon ipinamahagi ni lisensyado sa ilalim ng GNU General Public License.

Nais ni Johannes na lumikha ng isang tool na magpapahintulot sa kanya na sukatin ang pagganap ng isang computing system sa isang kinokontrol na kapaligiran. Samakatuwid, ang isa sa mga pangunahing tampok ng temci ay ang kakayahang mag-set up ng isang kapaligiran sa pagsubok. Halimbawa, maaari: baguhin ang mga setting ng tagapamahala ng dalas ng CPU, huwag paganahin hyper threading at L1 at L2 cache, i-off ang turbo mode sa mga Intel processor, atbp. Para sa pag-benchmark, ang temci ay gumagamit ng mga tool oras, perf_stat ΠΈ getrusage.

Ito ang hitsura ng utility sa unang kaso:

# 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

Batay sa mga resulta ng benchmarking, bumubuo ang system maginhawang ulat na may mga diagram, mga talahanayan at mga graph, na nagpapakilala sa temci mula sa mga katulad na solusyon.

Sa mga pagkukulang ng temci, namumukod-tangi ang β€œkabataan” nito. Dahil dito siya hindi lahat ay sinusuportahan mga pagsasaayos ng hardware at software. Halimbawa, mahirap tumakbo sa macOS, at hindi available ang ilang feature sa isang ARM-based system. Sa hinaharap, maaaring magbago ang sitwasyon, dahil ang may-akda ay aktibong gumagawa ng proyekto, at ang bilang ng mga bituin sa GitHub ay unti-unting tumataas - hindi pa gaanong katagal, temci kahit napag-usapan sa mga komento sa Hacker News.

uarch-bench

Isang utility para sa pagsusuri sa pagganap ng mababang antas ng mga function ng CPU, na binuo ng engineer na si Travis Downs (Travis Downs). Kamakailan ay nag-blog siya Mahalaga sa Pagganap sa Mga Pahina ng GitHub, na nag-uusap tungkol sa mga tool sa pag-benchmark at iba pang nauugnay na bagay. Sa pangkalahatan, ang uarch-bench ay nagsisimula pa lamang na makakuha ng katanyagan, ngunit madalas na nabanggit mga residente ng Hacker News sa mga thematic thread bilang isang go-to tool para sa benchmarking.

Pinapayagan ka ng Uarch-bench na suriin ang pagganap ng memorya, parallel na bilis ng paglo-load ng data at paglilinis ng trabaho Nagrerehistro ang YMM. Kung ano ang hitsura ng mga resulta ng benchmarking na nabuo ng programa ay makikita sa opisyal na imbakan sa ibaba ng pahina.

Kapansin-pansin na ang uarch-bench, tulad ng temci, hindi pinapagana Intel Turbo Boost function (awtomatikong pinapataas nito ang bilis ng orasan ng processor sa ilalim ng pagkarga) upang ang mga resulta ng pagsubok ay pare-pareho.

Sa ngayon, ang proyekto ay nasa mga unang yugto ng pag-unlad, kaya ang uarch-bench ay walang detalyadong dokumentasyon, at ang operasyon nito ay maaaring maglaman ng mga bug - halimbawa, ang mga paghihirap ay kilala na may paglulunsad sa Ryzen. Gayundin, ang mga benchmark lamang para sa mga x86 na arkitektura ang sinusuportahan. Nangangako ang may-akda na magdagdag ng higit pang functionality sa hinaharap at iniimbitahan kang sumali sa development.

likido

Ito ay isang hanay ng mga tool para sa pagsusuri sa pagganap ng mga makina ng Linux na may mga processor ng Intel, AMD at ARMv8. Nilikha ito sa ilalim ng tangkilik ng German Federal Ministry of Education and Research noong 2017 at inilabas sa open source.

Kabilang sa mga tool ng likwid, maaari naming i-highlight ang likwid-powermeter, na nagpapakita ng impormasyon mula sa mga rehistro ng RAPL tungkol sa kapangyarihan na natupok ng system, pati na rin ang likwid-setFrequencies, na nagpapahintulot sa iyo na kontrolin ang dalas ng processor. Makikita mo ang kumpletong listahan hanapin sa repositoryo.

Ang tool ay ginagamit ng mga inhinyero na kasangkot sa pananaliksik sa HPC. Halimbawa, sa likwid pagawaan isang pangkat ng mga espesyalista mula sa Regional Computing Center ng Unibersidad ng Erlangen-Nuremberg (RRZE) sa Germany. Siya rin ay aktibong bahagi sa pagbuo ng hanay ng mga tool na ito.

Mga Benchmark para sa mga server ng Linux: isang seleksyon ng mga bukas na tool
--ΠžΡ‚ΠΎ - Clem Onojeghuo β€” Unsplash

perf-tools

Ang tool na ito para sa pagsusuri sa pagganap ng mga server ng Linux ipinakilala Brendan Gregg. Isa siya sa mga developer DTrace β€” isang dynamic na tracing framework para sa pag-debug ng mga application sa real time.

perf-tools ay batay sa perf_events at ftrace kernel subsystem. Binibigyang-daan ka ng kanilang mga utility na suriin ang I/O latency (iosnoop), subaybayan ang mga argumento ng system call (unccount, funcslower, funcgraph at functrace) at mangolekta ng mga istatistika sa "mga hit" sa file cache (cachestat). Sa huling kaso, ang utos ay ganito ang hitsura:

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

Isang medyo malaking komunidad ang nabuo sa paligid ng instrumento (halos 6 na libong bituin sa GitHub). At may mga kumpanyang aktibong gumagamit ng perf-tools, halimbawa Netflix. Ngunit ang tool ay higit na binuo at binago (bagaman ang mga update ay inilabas na medyo bihirang kamakailan lamang). Samakatuwid, maaaring mangyari ang mga error sa pagpapatakbo nito - isinulat ng may-akda na kung minsan ang mga perf-tool ay nagdudulot ng kernel panic.

llvm-mca

Isang utility na hinuhulaan kung gaano karaming computing resources machine code ang kakailanganin sa iba't ibang CPU. Siya sinusuri Mga Tagubilin Bawat Ikot (IPC) at ang load sa hardware na nabubuo ng isang partikular na application.

Ang llvm-mca ay ipinakita noong 2018 bilang bahagi ng proyekto LLVM, na bumubuo ng isang unibersal na sistema para sa pagsusuri, pagbabago at pag-optimize ng mga programa. Ito ay kilala na ang mga may-akda ng llvm-mca ay inspirasyon ng isang solusyon para sa pagsusuri ng pagganap ng software IACA mula sa Intel at hinahangad na lumikha ng isang alternatibo. At ayon sa mga gumagamit, ang output ng tool (ang kanilang layout at dami) ay talagang kahawig ng IACA - halimbawa matatagpuan dito. Gayunpaman, tumatanggap lamang ang llvm-mca AT&T syntax, kaya malamang na kailangan mong gumamit ng mga converter upang gumana dito.

Kung ano ang isinusulat namin sa aming mga blog at social network:

Mga Benchmark para sa mga server ng Linux: isang seleksyon ng mga bukas na tool "Mat. Wall Street model" o kung paano i-optimize ang mga gastos sa cloud

Mga Benchmark para sa mga server ng Linux: isang seleksyon ng mga bukas na tool Paano i-secure ang iyong Linux system: 10 tip
Mga Benchmark para sa mga server ng Linux: isang seleksyon ng mga bukas na tool Pagbabawas ng mga panganib: kung paano hindi mawawala ang iyong data

Mga Benchmark para sa mga server ng Linux: isang seleksyon ng mga bukas na tool Mga libro para sa mga kasali na sa system administration o nagpaplano pa lang magsimula
Mga Benchmark para sa mga server ng Linux: isang seleksyon ng mga bukas na tool Pagpili: limang aklat at isang kurso sa mga network

Mga Benchmark para sa mga server ng Linux: isang seleksyon ng mga bukas na toolKami sa 1cloud.ru ay nag-aalok ng libreng serbisyo "DNS hosting" Maaari mong pamahalaan ang mga tala ng DNS sa isang personal na account.

Pinagmulan: www.habr.com

Magdagdag ng komento