Tolok ukur untuk server di Linux: pilihan alat terbuka

Kami terus berbicara tentang alat untuk mengevaluasi kinerja CPU pada mesin Linux. Hari ini dalam materi: temci, uarch-bench, likwid, perf-tools dan llvm-mca.

Lebih banyak tolok ukur:



Foto - Lukas Blazek - Unsplash



temci


Ini adalah alat untuk memperkirakan waktu pelaksanaan dua program. Bahkan, ini memungkinkan Anda untuk membandingkan waktu eksekusi dua aplikasi. Utilitas ini ditulis oleh seorang siswa dari Jerman Johannes Bechberger, yang mengembangkannya sebagai bagian dari pekerjaan sarjana di tahun 2016. Hari ini, alat ini dilisensikan di bawah Lisensi Publik Umum GNU.

Johannes ingin membuat alat yang akan mengukur kinerja sistem komputasi dalam lingkungan yang terkendali. Oleh karena itu, salah satu fitur utama temci adalah kemampuan untuk mengkonfigurasi lingkungan pengujian. Misalnya, Anda dapat : mengubah pengaturan manajer kontrol frekuensi CPU, menonaktifkan cache hyper-threading dan L1 dan L2, mematikan mode turbo pada prosesor Intel dan lainnya. Untuk pembandingan, temci menggunakan alat waktu , perf_stat dan getrusage .

Beginilah cara kerja utilitas dalam 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 yang nyaman dengan diagram, tabel, dan grafik, yang membedakan temci dari solusi serupa.

Dari kekurangan temci menonjol "masa mudanya". Karena itu, ini tidak mendukung semua konfigurasi perangkat keras dan perangkat lunak. Sebagai contoh, sulit untuk dijalankan di bawah macOS, dan beberapa fungsi tidak tersedia pada sistem dengan prosesor ARM. Situasi mungkin berubah di masa depan, karena penulis secara aktif mengembangkan proyek, dan jumlah bintang di GitHub secara bertahap meningkat - belum lama ini temci bahkan dibahas dalam komentar di Hacker News.



bangku-bangku


Utilitas untuk mengevaluasi kinerja fungsi CPU tingkat rendah, yang dikembangkan oleh insinyur Travis Downs ( Travis Downs ). Baru-baru ini, ia telah menjalankan blog Performance Matters di GitHub Pages, yang berbicara tentang alat benchmarking dan hal-hal terkait lainnya. Secara umum, bangku-bangku baru mulai mendapatkan popularitas, tetapi sudah cukup sering disebutkan oleh warga Hacker News di utas utas sebagai alat tolok ukur.

Bangku Uarch memungkinkan Anda untuk mengevaluasi kinerja memori, kecepatan pemuatan data paralel dan bekerja untuk membersihkan register YMM . Seperti apa hasil pembandingan yang dihasilkan oleh program dapat ditemukan di repositori resmi di bagian bawah halaman.

Perlu dicatat bahwa uarch-bench, seperti temci, menonaktifkan fungsi Intel Turbo Boost (secara otomatis meningkatkan kecepatan clock prosesor di bawah beban) sehingga hasil pengujian konsisten.

Sejauh ini, proyek ini masih dalam tahap awal pengembangan, sehingga bangku-uarch tidak memiliki dokumentasi terperinci, dan mungkin ada bug dalam pekerjaannya - misalnya, kesulitan dalam menjalankan Ryzen diketahui . Hanya tolok ukur untuk arsitektur x86 yang didukung. Penulis berjanji untuk menambahkan lebih banyak fungsi di masa depan dan mengundang untuk bergabung dalam pengembangan.



likwid


Ini adalah toolkit 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 dipindahkan ke sumber terbuka.

Di antara alat likwid, likwid-powermeter dapat dibedakan, yang menampilkan informasi dari register RAPL tentang daya yang dikonsumsi oleh sistem, serta likwid-setFrequencies - memungkinkan Anda untuk mengontrol frekuensi prosesor. Anda dapat menemukan daftar lengkap di repositori .

Alat ini digunakan oleh para insinyur yang terlibat dalam penelitian di bidang HPC. Sebagai contoh, sekelompok spesialis dari Pusat Komputasi Regional Universitas Erlangen-Nuremberg (RRZE) di Jerman bekerja dengan likwid. Dia aktif terlibat dalam pengembangan seperangkat alat ini.





Foto - Clem Onojeghuo - Unsplash



alat perf


Alat ini untuk menganalisis kinerja server Linux diperkenalkan oleh Brendan Gregg. Dia adalah salah satu pengembang DTrace , kerangka penelusuran dinamis untuk debugging aplikasi secara real time.

Perf-tools didasarkan pada subsistem kernel, perf_events dan ftrace. Utilitas mereka memungkinkan Anda untuk menganalisis keterlambatan input / output (iosnoop), melacak argumen untuk mengakses panggilan sistem (unccount, funcslower, funcgraph dan functrace) dan mengumpulkan statistik tentang "hit" dalam cache file (cachestat). Dalam kasus terakhir, perintahnya terlihat 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 komunitas yang agak besar telah terbentuk di sekitar alat ( hampir 6 ribu bintang di GitHub ). Dan ada perusahaan yang aktif menggunakan perf-tools, seperti Netflix . Tetapi alat ini sedang difinalisasi dan dimodifikasi (meskipun pembaruan telah dirilis sangat jarang belakangan ini). Karena itu, kesalahan dapat terjadi dalam karyanya - penulis menulis bahwa kadang-kadang perf-tools memanggil kernel panik.



llvm-mca


Utilitas yang memprediksi berapa banyak sumber daya komputasi yang dibutuhkan oleh kode mesin pada CPU yang berbeda. Ini mengevaluasi Instructions Per Cycle ( IPC ) dan beban perangkat keras yang dihasilkan aplikasi.

llvm-mca diperkenalkan pada 2018 sebagai bagian dari proyek LLVM , yang mengembangkan sistem universal untuk analisis, transformasi, dan optimalisasi program. Diketahui bahwa penulis llvm-mca terinspirasi oleh solusi analisis kinerja perangkat lunak Intel IACA dan berusaha untuk membuat alternatif untuk itu. Dan menurut pengguna, output dari alat (markup dan nomor mereka) sangat mirip dengan IACA - sebuah contoh dapat ditemukan di sini . Namun, llvm-mca hanya menerima sintaks AT&T , jadi Anda mungkin perlu menggunakan konverter untuk bekerja dengannya.



Apa yang kami tulis di blog dan jejaring sosial kami:

"Mat. Model Wall Street "atau cara mengoptimalkan biaya cloud

Mengamankan sistem Linux Anda: 10 tips
Minimalisasi risiko: bagaimana tidak kehilangan data Anda

Buku untuk mereka yang sudah terlibat dalam administrasi sistem atau hanya berencana untuk memulai
Pilihan: lima buku dan satu kursus di jaringan



Kami di 1cloud.ru menawarkan layanan " hosting DNS " gratis. Anda dapat mengelola data DNS Anda dalam satu akun pribadi.


Source: https://habr.com/ru/post/id464763/


All Articles