Kami terus membincangkan tentang alat untuk menilai prestasi CPU Linux-mesin. Bahan hari ini: temci, uarch-bench, likwid, perf-tools dan llvm-mca.
Lebih banyak tanda aras:
Фото - - Nyah percikan
Ini adalah alat untuk menganggarkan masa pelaksanaan dua program. Pada asasnya, ia membolehkan anda membandingkan masa pelaksanaan dua aplikasi. Pengarang utiliti itu ialah seorang pelajar dari Jerman, Johannes Bechberger, yang membangunkannya sebagai sebahagian daripada tesis sarjana mudanya pada 2016. Alat hari ini dilesenkan di bawah Lesen Awam Am GNU.
Johannes ingin mencipta alat yang membolehkannya mengukur prestasi sistem pengkomputeran dalam persekitaran terkawal. Oleh itu, salah satu ciri utama temci ialah keupayaan untuk menyediakan persekitaran ujian. Sebagai contoh, : tukar tetapan pengurus frekuensi CPU, lumpuhkan dan cache L1 dan L2, matikan mod turbo pada pemproses Intel, dsb. Untuk menanda aras, temci menggunakan alatan , и .
Inilah rupa utiliti dalam kes pertama:
# 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
Berdasarkan hasil penandaarasan, sistem menjana dengan gambar rajah, jadual dan graf, yang membezakan temci daripada penyelesaian yang serupa.
Antara kekurangan temci, "kemudaan"nya terserlah. Kerana ini dia konfigurasi perkakasan dan perisian. Contohnya, ia sukar untuk dijalankan di bawah macOS, dan beberapa ciri tidak tersedia pada sistem dengan pemproses ARM. Ini mungkin berubah pada masa hadapan, kerana penulis sedang giat membangunkan projek ini, dan bilangan bintang di GitHub semakin meningkat—tidak lama dahulu, temci pun di Berita Hacker.
Utiliti untuk menilai prestasi fungsi CPU peringkat rendah, dibangunkan oleh jurutera Travis Downs (). Baru-baru ini dia telah menulis blog pada Halaman GitHub, yang bercakap tentang alat penanda aras dan perkara lain yang berkaitan. Secara umum, uarch-bench baru mula mendapat populariti, tetapi ia sudah agak biasa penduduk Berita Hacker dalam urutan tematik sebagai alat pergi ke untuk penanda aras.
Uarch-bench membolehkan anda menilai prestasi memori, kelajuan memuatkan data selari dan kerja pembersihan . Macam mana hasil penandaarasan yang dijana oleh program boleh didapati di bahagian bawah halaman.
Perlu diperhatikan bahawa bangku uarch, seperti temci, Fungsi Intel Turbo Boost (ia secara automatik meningkatkan kelajuan jam pemproses di bawah beban) supaya keputusan ujian adalah konsisten.
Buat masa ini, projek itu berada di peringkat awal pembangunan, jadi uarch-bench tidak mempunyai dokumentasi terperinci, dan operasinya mungkin mengandungi pepijat - contohnya, dengan pelancaran pada Ryzen. Juga, hanya penanda aras untuk seni bina x86 disokong. Pengarang berjanji untuk menambah lebih banyak fungsi pada masa hadapan dan menjemput anda untuk menyertai pembangunan.
Ini adalah satu set alat untuk penilaian prestasi Linux-mesin dengan pemproses Intel, AMD dan ARMv8. Ia telah dicipta di bawah naungan Kementerian Pendidikan dan Penyelidikan Persekutuan Jerman pada tahun 2017 dan dikeluarkan sebagai sumber terbuka.
Antara alat likwid, kita boleh menyerlahkan likwid-powermeter, yang memaparkan maklumat daripada daftar RAPL tentang kuasa yang digunakan oleh sistem, serta likwid-setFrequencies, yang membolehkan anda mengawal kekerapan pemproses. Anda boleh melihat senarai lengkap .
Alat ini digunakan oleh jurutera yang terlibat dalam penyelidikan HPC. Contohnya, dengan likwid sekumpulan pakar dari Pusat Pengkomputeran Serantau Universiti Erlangen-Nuremberg (RRZE) di Jerman. Dia juga mengambil bahagian aktif dalam pembangunan set alat ini.

Фото - - Nyah percikan
Ini adalah alat analisis prestasi Linux-pelayan Brendan Gregg. Dia adalah salah seorang pemaju — rangka kerja pengesanan dinamik untuk menyahpepijat aplikasi dalam masa nyata.
perf-tools adalah berdasarkan perf_events dan subsistem kernel ftrace. Utiliti mereka membolehkan anda menganalisis kependaman I/O (iosnoop), menjejaki hujah panggilan sistem (unccount, funcslower, funcgraph dan functrace) dan mengumpul statistik tentang "hits" dalam cache fail (cachestat). Dalam kes kedua, arahan kelihatan seperti ini:
# ./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
Sebuah komuniti yang agak besar telah terbentuk di sekeliling instrumen (). Dan terdapat syarikat yang secara aktif menggunakan alat perf, sebagai contoh . Tetapi alat itu sedang dibangunkan dan diubah suai lagi (walaupun kemas kini telah dikeluarkan agak jarang kebelakangan ini). Oleh itu, ralat mungkin berlaku dalam operasinya - penulis menulis bahawa kadangkala alat perf menyebabkan panik kernel.
Utiliti yang meramalkan bilangan kod mesin sumber pengkomputeran yang diperlukan pada CPU yang berbeza. dia Arahan Setiap Kitaran () dan beban pada perkakasan yang dihasilkan oleh aplikasi tertentu.
llvm-mca telah dibentangkan pada 2018 sebagai sebahagian daripada projek itu , yang sedang membangunkan sistem universal untuk analisis, transformasi dan pengoptimuman program. Adalah diketahui bahawa pengarang llvm-mca telah diilhamkan oleh penyelesaian untuk menganalisis prestasi perisian dan berusaha untuk mencipta alternatif. Dan menurut pengguna, output alat (susun atur dan kuantiti mereka) benar-benar menyerupai IACA - contoh . Walau bagaimanapun, llvm-mca hanya menerima , jadi kemungkinan besar anda perlu menggunakan penukar untuk bekerja dengannya.
Perkara yang kami tulis di blog dan rangkaian sosial kami:
![]()
![]()
![]()
![]()
![]()
Kami di 1cloud.ru menawarkan perkhidmatan percuma “" Anda boleh mengurus rekod DNS dalam satu akaun peribadi.
Sumber: www.habr.com
