Tolok ukur untuk server Linux: pilihan alat terbuka
Kami terus berbicara tentang alat untuk menilai kinerja CPU pada mesin Linux. Hari ini dalam materi: temci, uarch-bench, likwid, perf-tools dan llvm-mca.
Ini adalah alat untuk memperkirakan waktu eksekusi dua program. Pada dasarnya, ini memungkinkan Anda membandingkan waktu eksekusi dua aplikasi. Penulis utilitas ini adalah seorang mahasiswa asal Jerman, Johannes Bechberger, yang mengembangkannya sebagai bagian dari tesis sarjananya pada tahun 2016. Alat hari ini didistribusikan oleh dilisensikan di bawah Lisensi Publik Umum GNU.
Johannes ingin menciptakan alat yang memungkinkannya mengukur kinerja sistem komputasi dalam lingkungan terkendali. Oleh karena itu, salah satu fitur utama temci adalah kemampuan untuk mengatur lingkungan pengujian. Misalnya, satu bisa: mengubah pengaturan manajer frekuensi CPU, menonaktifkan hyper threading dan cache L1 dan L2, matikan mode turbo pada prosesor Intel, dll. Untuk benchmarking temci menggunakan tools waktu, kinerja_stat ΠΈ getrusage.
Ini adalah tampilan utilitas pada kasus 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 benchmarking, sistem menghasilkan laporan nyaman dengan diagram, tabel, dan grafik, yang membedakan temci dari solusi serupa.
Di antara kekurangan temci, βmasa mudanyaβ menonjol. Karena itu dia tidak semuanya didukung konfigurasi perangkat keras dan perangkat lunak. Misalnya, sulit dijalankan di macOS, dan beberapa fitur tidak tersedia di sistem berbasis ARM. Di masa depan, situasinya mungkin berubah, karena penulis secara aktif mengembangkan proyek, dan jumlah bintang di GitHub secara bertahap meningkat - bahkan belum lama ini. dibahas di komentar di Berita Peretas.
Sebuah utilitas untuk mengevaluasi kinerja fungsi CPU tingkat rendah, yang dikembangkan oleh insinyur Travis Downs (Travis Turun). Baru-baru ini dia sedang ngeblog Performa Penting di Halaman GitHub, yang membahas tentang alat benchmarking dan hal terkait lainnya. Secara umum, uarch-bench baru mulai mendapatkan popularitas, tetapi ini sudah cukup umum disebutkan penghuni Hacker News di thread tematik sebagai alat bantu untuk melakukan benchmarking.
Uarch-bench memungkinkan Anda mengevaluasi kinerja memori, kecepatan pemuatan data paralel, dan pekerjaan pembersihan pendaftaran YMM. Anda dapat mengetahui seperti apa hasil benchmarking yang dihasilkan oleh program tersebut di repositori resmi di bagian bawah halaman.
Perlu dicatat bahwa bangku uarch, seperti temci, terputus Fungsi Intel Turbo Boost (secara otomatis meningkatkan kecepatan clock prosesor saat dimuat) sehingga hasil pengujian konsisten.
Untuk saat ini, proyek ini masih dalam tahap awal pengembangan, sehingga uarch-bench tidak memiliki dokumentasi terperinci, dan pengoperasiannya mungkin mengandung bug - misalnya, kesulitan diketahui dengan peluncuran di Ryzen. Selain itu, hanya benchmark untuk arsitektur x86 yang didukung. Penulis berjanji untuk menambahkan lebih banyak fungsi di masa depan dan mengundang Anda untuk bergabung dalam pengembangan.
Ini adalah seperangkat alat untuk mengevaluasi kinerja mesin Linux dengan prosesor Intel, AMD dan ARMv8. Itu dibuat di bawah naungan Kementerian Pendidikan dan Penelitian Federal Jerman pada tahun 2017 dan dirilis ke open source.
Di antara alat likwid, kami dapat menyoroti likwid-powermeter, yang menampilkan informasi dari register RAPL tentang daya yang dikonsumsi oleh sistem, serta likwid-setFrequencies, yang memungkinkan Anda mengontrol frekuensi prosesor. Anda dapat melihat daftar lengkapnya temukan di repositori.
Alat ini digunakan oleh para insinyur yang terlibat dalam penelitian HPC. Misalnya dengan likwid bekerja sekelompok spesialis dari Pusat Komputasi Regional Universitas Erlangen-Nuremberg (RRZE) di Jerman. Ia juga berperan aktif dalam pengembangan seperangkat alat ini.
Alat ini untuk menganalisis kinerja server Linux diperkenalkan Brendan Gregg. Dia adalah salah satu pengembangnya DTrace β kerangka penelusuran dinamis untuk men-debug aplikasi secara real-time.
perf-tools didasarkan pada subsistem kernel perf_events dan ftrace. Utilitasnya memungkinkan Anda menganalisis latensi I/O (iosnoop), melacak argumen panggilan sistem (unccount, funcslower, funcgraph, dan functrace) dan mengumpulkan statistik βhitβ di cache file (cachestat). Dalam kasus terakhir, perintahnya terlihat seperti ini:
Komunitas yang cukup besar telah terbentuk di sekitar instrumen (hampir 6 ribu bintang di GitHub). Dan ada perusahaan yang aktif menggunakan perf-tools, misalnya Netflix. Namun alat ini terus dikembangkan dan dimodifikasi (walaupun pembaruan jarang dirilis akhir-akhir ini). Oleh karena itu, kesalahan mungkin terjadi dalam pengoperasiannya - penulis menulis bahwa terkadang perf-tools menyebabkan kepanikan kernel.
Sebuah utilitas yang memprediksi berapa banyak sumber daya komputasi yang dibutuhkan kode mesin pada CPU yang berbeda. Dia mengevaluasi Instruksi Per Siklus (IPC) dan beban pada perangkat keras yang dihasilkan oleh aplikasi tertentu.
llvm-mca dipresentasikan pada tahun 2018 sebagai bagian dari proyek LLVM, yang mengembangkan sistem universal untuk analisis, transformasi, dan optimalisasi program. Diketahui bahwa penulis llvm-mca terinspirasi oleh solusi untuk menganalisis kinerja perangkat lunak IACA dari Intel dan berusaha menciptakan alternatif. Dan menurut pengguna, keluaran alat (tata letak dan kuantitasnya) sangat mirip dengan IACA - misalnya dapat ditemukan di sini. Namun, llvm-mca hanya menerima Sintaks AT&T, jadi kemungkinan besar Anda harus menggunakan konverter untuk menggunakannya.
Apa yang kami tulis di blog dan jejaring sosial kami: