Penanda aras untuk pelayan Linux: pilihan alat terbuka

Kami terus bercakap tentang alat untuk menilai prestasi CPU pada mesin Linux. Hari ini dalam bahan: temci, uarch-bench, likwid, perf-tools dan llvm-mca.

Lebih banyak tanda aras:

Penanda aras untuk pelayan Linux: pilihan alat terbuka
Π€ΠΎΡ‚ΠΎ - Lukas Blazek - Nyah percikan

temci

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 diedarkan oleh 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, seseorang boleh: tukar tetapan pengurus frekuensi CPU, lumpuhkan benang hiper dan cache L1 dan L2, matikan mod turbo pada pemproses Intel, dsb. Untuk menanda aras, temci menggunakan alatan masa, perf_stat ΠΈ getrusage.

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 laporan yang mudah dengan gambar rajah, jadual dan graf, yang membezakan temci daripada penyelesaian yang serupa.

Antara kekurangan temci, "kemudaan"nya terserlah. Kerana ini dia tidak semuanya disokong konfigurasi perkakasan dan perisian. Contohnya, sukar untuk dijalankan pada macOS dan beberapa ciri tidak tersedia pada sistem berasaskan ARM. Pada masa hadapan, keadaan mungkin berubah, kerana pengarang sedang giat membangunkan projek itu, dan bilangan bintang di GitHub semakin meningkat secara beransur-ansur - tidak lama dahulu temci malah dibincangkan dalam komen di Berita Hacker.

uarch-bench

Utiliti untuk menilai prestasi fungsi CPU peringkat rendah, dibangunkan oleh jurutera Travis Downs (Travis Downs). Baru-baru ini dia telah menulis blog Perkara Prestasi 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 disebutkan 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 YMM mendaftar. Macam mana hasil penandaarasan yang dijana oleh program boleh didapati dalam repositori rasmi di bahagian bawah halaman.

Perlu diperhatikan bahawa bangku uarch, seperti temci, terputus sambungan 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, kesukaran diketahui 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.

cecair

Ini ialah satu set alat untuk menilai prestasi mesin Linux dengan pemproses Intel, AMD dan ARMv8. Ia dicipta di bawah naungan Kementerian Pendidikan dan Penyelidikan Persekutuan Jerman pada 2017 dan dikeluarkan ke 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 cari dalam repositori.

Alat ini digunakan oleh jurutera yang terlibat dalam penyelidikan HPC. Contohnya, dengan likwid kerja-kerja sekumpulan pakar dari Pusat Pengkomputeran Serantau Universiti Erlangen-Nuremberg (RRZE) di Jerman. Dia juga mengambil bahagian aktif dalam pembangunan set alat ini.

Penanda aras untuk pelayan Linux: pilihan alat terbuka
Π€ΠΎΡ‚ΠΎ - Clem Onojeghuo - Nyah percikan

alat perf

Alat ini untuk menganalisis prestasi pelayan Linux diperkenalkan Brendan Gregg. Dia adalah salah seorang pemaju DTrace β€” 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 (hampir 6 ribu bintang di GitHub). Dan terdapat syarikat yang secara aktif menggunakan alat perf, sebagai contoh Netflix. 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.

llvm-mca

Utiliti yang meramalkan bilangan kod mesin sumber pengkomputeran yang diperlukan pada CPU yang berbeza. dia menilai Arahan Setiap Kitaran (IPC) dan beban pada perkakasan yang dihasilkan oleh aplikasi tertentu.

llvm-mca telah dibentangkan pada 2018 sebagai sebahagian daripada projek itu LLVM, 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 IACA daripada Intel dan berusaha untuk mencipta alternatif. Dan menurut pengguna, output alat (susun atur dan kuantiti mereka) benar-benar menyerupai IACA - contoh boleh didapati di sini. Walau bagaimanapun, llvm-mca hanya menerima Sintaks AT&T, jadi kemungkinan besar anda perlu menggunakan penukar untuk bekerja dengannya.

Perkara yang kami tulis di blog dan rangkaian sosial kami:

Penanda aras untuk pelayan Linux: pilihan alat terbuka β€œMat. Model Wall Street" atau cara mengoptimumkan kos awan

Penanda aras untuk pelayan Linux: pilihan alat terbuka Bagaimana untuk melindungi sistem Linux anda: 10 petua
Penanda aras untuk pelayan Linux: pilihan alat terbuka Meminimumkan risiko: bagaimana untuk tidak kehilangan data anda

Penanda aras untuk pelayan Linux: pilihan alat terbuka Buku untuk mereka yang sudah terlibat dalam pentadbiran sistem atau baru merancang untuk memulakan
Penanda aras untuk pelayan Linux: pilihan alat terbuka Pilihan: lima buku dan satu kursus pada rangkaian

Penanda aras untuk pelayan Linux: pilihan alat terbukaKami di 1cloud.ru menawarkan perkhidmatan percuma β€œPengehosan DNS" Anda boleh mengurus rekod DNS dalam satu akaun peribadi.

Sumber: www.habr.com

Tambah komen