Tolok ukur kanggo server Linux: pilihan alat sing mbukak
Kita terus ngomong babagan alat kanggo ngevaluasi kinerja CPU ing mesin Linux. Dina iki ing materi: temci, uarch-bench, likwid, perf-alat lan llvm-mca.
Iki minangka alat kanggo ngira wektu eksekusi rong program. Ateges, ngidini sampeyan mbandhingake wektu eksekusi rong aplikasi. Penulis sarana kasebut yaiku mahasiswa saka Jerman, Johannes Bechberger, sing ngembangake minangka bagian saka tesis sarjana ing 2016. Dina iki minangka alat disebarake dening dilisensi ing GNU General Public License.
Johannes pengin nggawe alat sing ngidini dheweke ngukur kinerja sistem komputasi ing lingkungan sing dikontrol. Mula, salah sawijining fitur utama temci yaiku kemampuan kanggo nyiyapake lingkungan tes. Tuladhane, bisa: ngganti setelan manager frekuensi CPU, mateni hyper threading lan L1 lan L2 caches, mateni mode turbo ing prosesor Intel, etc. Kanggo benchmarking temci nggunakake alat wektu, perf_stat и getrusage.
Iki minangka sarana ing kasus pisanan:
# 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
Adhedhasar asil benchmarking, sistem ngasilake laporan trep karo diagram, tabel lan grafik, kang mbedakake temci saka solusi padha.
Ing antarane kekurangan temci, "pemuda" kasebut katon. Amarga iki dheweke ora kabeh didhukung konfigurasi hardware lan piranti lunak. Contone, angel mbukak ing macOS, lan sawetara fitur ora kasedhiya ing sistem basis ARM. Ing mangsa ngarep, kahanan bisa uga owah, amarga penulis aktif ngembangake proyek kasebut, lan jumlah bintang ing GitHub saya tambah akeh - durung suwe temci malah rembugan ing komentar ing Hacker News.
Utilitas kanggo ngevaluasi kinerja fungsi CPU tingkat rendah, dikembangake dening insinyur Travis Downs (Travis Downs). Bubar dheweke wis blogging Perkara Kinerja ing GitHub Pages, sing ngomong babagan alat benchmarking lan liyane sing gegandhengan. Umumé, uarch-bench mung wiwit entuk popularitas, nanging wis cukup umum kasebut residents saka Hacker News ing Utas tematik minangka Go-to alat kanggo benchmarking.
Uarch-bench ngijini sampeyan kanggo ngira-ngira kinerja memori, kacepetan loading data podo lan karya reresik Ndaftar YMM. Apa asil benchmarking sing diasilake dening program bisa ditemokake ing repositori resmi ing sisih ngisor kaca.
Wigati dicathet yen bangku uarch, kaya temci, disables Fungsi Intel Turbo Boost (kanthi otomatis nambah kacepetan jam prosesor ing beban) supaya asil tes konsisten.
Saiki, proyek kasebut ana ing tahap wiwitan pangembangan, mula uarch-bench ora duwe dokumentasi rinci, lan operasi kasebut bisa uga ana kewan omo - contone, kangelan dikenal kanthi diluncurake ing Ryzen. Uga, mung pathokan kanggo arsitektur x86 sing didhukung. Penulis janji bakal nambah fungsi liyane ing mangsa ngarep lan ngajak sampeyan gabung karo pangembangan kasebut.
Iki minangka piranti kanggo ngevaluasi kinerja mesin Linux kanthi prosesor Intel, AMD lan ARMv8. Iki digawe ing sangisore naungan Kementerian Pendidikan lan Riset Federal Jerman ing 2017 lan dirilis menyang sumber terbuka.
Antarane alat likwid, kita bisa nyorot likwid-powermeter, sing nampilake informasi saka registrasi RAPL babagan daya sing dikonsumsi dening sistem, uga likwid-setFrequencies, sing ngidini sampeyan ngontrol frekuensi prosesor. Sampeyan bisa ndeleng dhaptar lengkap golek ing gudang.
Alat kasebut digunakake dening insinyur sing melu riset HPC. Contone, karo likwid работает klompok spesialis saka Pusat Komputasi Regional Universitas Erlangen-Nuremberg (RRZE) ing Jerman. Dheweke uga melu aktif ing pangembangan piranti kasebut.
Alat iki kanggo nganalisa kinerja server Linux ngenalake Brendan Gregg. Dheweke minangka salah sawijining pangembang DTrace - kerangka tracing dinamis kanggo aplikasi debugging ing wektu nyata.
perf-tools adhedhasar subsistem kernel perf_events lan ftrace. Utilitas kasebut ngidini sampeyan nganalisa latensi I / O (iosnoop), nglacak argumen panggilan sistem (unccount, funcslower, funcgraph lan functrace) lan ngumpulake statistik babagan "hits" ing cache file (cachestat). Ing kasus pungkasan, printah katon kaya iki:
Komunitas sing cukup gedhe wis dibentuk ing sekitar instrumen (meh 6 ewu lintang ing GitHub). Lan ana perusahaan sing aktif nggunakake perf-alat, contone Netflix. Nanging alat kasebut lagi dikembangake lan diowahi (sanajan nganyari wis jarang dirilis akhir-akhir iki). Mulane, kesalahan bisa kedadeyan ing operasi - penulis nulis sing kadhangkala perf-alat nimbulaké gupuh kernel.
Utilitas sing prédhiksi jumlah kode mesin sumber daya komputasi sing dibutuhake ing CPU sing beda-beda. dheweke ngevaluasi Instruksi Per Siklus (IPC) lan beban ing piranti keras sing diasilake aplikasi tartamtu.
llvm-mca ditampilake ing 2018 minangka bagean saka proyek kasebut LLVM, sing ngembangake sistem universal kanggo analisis, transformasi lan optimalisasi program. Dikenal yen penulis llvm-mca diilhami dening solusi kanggo nganalisa kinerja piranti lunak IACA saka Intel lan ngupaya nggawe alternatif. Lan miturut pangguna, output alat (tata letak lan jumlahe) meh padha karo IACA - contone bisa ditemokake ing kene. Nanging, llvm-mca mung nampa sintaks AT&T, dadi sampeyan mesthine kudu nggunakake konverter kanggo nggarap.