Perf- alat pemantauan dan analisis kinerja untuk Linux

Perf- alat pemantauan dan analisis kinerja untuk Linux

Ketika kita berbicara tentang kinerja dalam komputasi, kita merujuk pada hubungan antara sumber daya kita dan tugas -tugas yang memungkinkan kita untuk menyelesaikannya dalam periode waktu tertentu.

Perf- alat pemantauan dan analisis kinerja untuk Linux

Dalam hari persaingan tanpa sengit antara perusahaan, penting bagi kita untuk belajar bagaimana menggunakan apa yang kita miliki dalam kapasitasnya. Pemborosan sumber daya perangkat keras atau perangkat lunak, atau kurangnya kemampuan untuk mengetahui cara menggunakannya lebih efisien, akhirnya menjadi kerugian yang tidak mampu kita lakukan jika kita ingin berada di puncak permainan kita.

Pada saat yang sama, kita harus berhati -hati untuk tidak membawa sumber daya kita ke batas di mana penggunaan berkelanjutan akan menghasilkan kerusakan yang tidak dapat diperbaiki.

Dalam artikel ini kami akan memperkenalkan Anda ke alat analisis kinerja yang relatif baru dan memberikan tips yang dapat Anda gunakan untuk memantau sistem Linux Anda, termasuk perangkat keras dan aplikasi. Ini akan membantu Anda memastikan bahwa mereka beroperasi sehingga Anda mampu menghasilkan hasil yang diinginkan tanpa membuang -buang sumber daya atau energi Anda sendiri.

Memperkenalkan dan menginstal perf di linux

Di antara yang lain, Linux menyediakan alat pemantauan dan analisis kinerja yang disebut dengan nyaman perf. Jadi apa yang membedakan perf dari alat terkenal lainnya yang sudah Anda kenal?

Jawabannya adalah itu perf Memberikan akses ke unit pemantauan kinerja di CPU, dan dengan demikian memungkinkan kita untuk melihat dengan cermat perilaku perangkat keras dan peristiwa terkaitnya.

Selain itu, ia juga dapat memantau acara perangkat lunak, dan membuat laporan dari data yang dikumpulkan.

Anda dapat menginstal perf dalam distribusi berbasis RPM dengan:

# yum update && yum install perf [Centos / RHEL / Fedora] # DNF UPDATE && DNF Instal Perf [Fedora 23+ Rilis] 

Di dalam Debian dan turunannya:

# Sudo Aptitude Update && Sudo Aptitude Instal Linux-Tools-$ (uname -r) Linux-Tools-Generic 

Jika uname -r dalam perintah di atas mengembalikan string tambahan selain versi yang sebenarnya (3.2.0-23-Generic dalam kasus saya), Anda mungkin harus mengetik Linux-Tools-3.2.0-23 alih -alih menggunakan output nama kamu.

Penting juga untuk dicatat itu perf menghasilkan hasil yang tidak lengkap saat dijalankan dalam tamu di atas VirtualBox atau VMware karena mereka tidak mengizinkan akses ke penghitung perangkat keras sebagai teknologi virtualisasi lainnya (seperti KVM atau XEN).

Selain itu, perlu diingat bahwa beberapa orang perf Perintah dapat dibatasi untuk root secara default, yang dapat dinonaktifkan (sampai sistem di -reboot) dengan melakukan:

# Echo 0>/proc/sys/kernel/perf_event_paranoid 

Jika Anda perlu menonaktifkan paranoid Mode secara permanen, perbarui pengaturan berikut /etc/sysctl.conf mengajukan.

inti.perf_event_paranoid = 0 

Sub -perintah

Setelah Anda menginstal perf, Anda dapat merujuk ke halaman mannya untuk daftar sub -perintah yang tersedia (Anda dapat menganggap sub -perintah sebagai opsi khusus yang membuka jendela tertentu ke dalam sistem). Untuk hasil terbaik dan lebih lengkap, gunakan perf baik sebagai akar atau melalui sudo.

Daftar Perf

daftar perf (tanpa opsi) Mengembalikan semua jenis acara simbolik (daftar panjang). Jika Anda ingin melihat daftar acara yang tersedia dalam kategori tertentu, gunakan perf Daftar diikuti oleh nama kategori ([HW | SW | Cache | Tracepoint | PMU | Event_Glob]), seperti:

Daftar Tampilan Perangkat Lunak Acara yang ditentukan sebelumnya di Linux:

# Daftar Perf SW 
Daftar Perangkat Lunak Acara yang ditentukan sebelumnya di Linux

Perf Perf

perf Stat menjalankan perintah dan mengumpulkan statistik kinerja Linux selama pelaksanaan perintah tersebut. Apa yang terjadi di sistem kami saat kami berjalan DD?

# perf stat dd if =/dev/nol of = tes.ISO BS = Hitung 10m = 1 
Mengumpulkan statistik kinerja perintah Linux

Statistik yang ditunjukkan di atas menunjukkan, antara lain:

  1. Pelaksanaan DD perintah mengambil 21.812281 milidetik CPU. Jika kita membagi nomor ini dengan nilai "waktu detik berlalu" di bawah ini (23.914596 milidetik), itu menghasilkan 0.912 (CPU digunakan).
  2. Saat perintah dieksekusi, 15 Konteks-switches (juga dikenal sebagai sakelar proses) menunjukkan bahwa CPU dialihkan 15 kali dari satu proses (atau utas) ke yang lain.
  3. 2 Migrasi CPU adalah hasil yang diharapkan ketika dalam CPU 2-core, beban kerja didistribusikan secara merata antara jumlah inti.
    Selama waktu itu (21.812281 milidetik), jumlah total siklus CPU yang dikonsumsi adalah 62.025.623, yang dibagi oleh 0.021812281 detik memberi 2.843 GHz.
  4. Jika kita membagi jumlah siklus dengan jumlah total instruksi yang kita dapatkan 4.9 Siklus per instruksi, yang berarti setiap instruksi membutuhkan hampir 5 siklus CPU untuk diselesaikan (rata -rata). Kita dapat menyalahkan ini (setidaknya sebagian) pada jumlah cabang dan miss cabang (lihat di bawah), yang akhirnya membuang-buang atau menyalahgunakan siklus CPU.
  5. Saat perintah dieksekusi, total 3.552.630 Cabang ditemui. Ini adalah representasi poin keputusan dan loop tingkat CPU. Semakin banyak cabang, semakin rendah kinerjanya. Untuk mengimbangi ini, semua upaya CPU modern untuk memprediksi aliran yang akan diambil kode. 51.348 Misses cabang menunjukkan fitur prediksi salah 1.45% waktu itu.

Prinsip yang sama berlaku untuk pengumpulan statistik (atau dengan kata lain, profil) saat aplikasi berjalan. Cukup luncurkan aplikasi yang diinginkan dan setelah periode waktu yang wajar (yang terserah Anda) tutupnya, dan perf akan menampilkan statistik di layar. Dengan menganalisis statistik itu, Anda dapat mengidentifikasi masalah potensial.

Perf top

perf top mirip dengan perintah atas, karena menampilkan profil sistem yang hampir real-time (juga dikenal sebagai analisis langsung).

Dengan -A opsi Anda akan menampilkan semua jenis acara yang diketahui, sedangkan -e Opsi akan memungkinkan Anda untuk memilih kategori acara tertentu (seperti yang dikembalikan oleh Daftar Perf):

Akan menampilkan semua acara siklus.

perf top -a 

Akan menampilkan semua acara terkait CPU-Clock.

perf top -e cpu -clock 
Analisis langsung kinerja Linux

Kolom pertama dalam output di atas mewakili persentase sampel yang diambil sejak awal menjalankan, dikelompokkan berdasarkan simbol fungsi dan objek bersama. Lebih banyak opsi tersedia di Pria perf-top.

Catatan Perf

perf Rekaman menjalankan perintah dan menyimpan data statistik ke dalam file bernama perf.data Di dalam direktori kerja saat ini. Itu berjalan mirip dengan Perf Perf.

Jenis Catatan Perf diikuti dengan perintah:

# perf merekam dd if =/dev/null of = tes.ISO BS = Hitung 10m = 1 
Catat Data Statistik Perintah

Laporan Perf

Laporan Perf memformat data yang dikumpulkan perf.data di atas menjadi laporan kinerja:

# Laporan Sudo Perf 
Laporan Kinerja Perf Linux

Semua yang di atas Sub -perintah memiliki halaman pria khusus yang dapat dipanggil sebagai:

# Man Perf-Subkomand 

Di mana Sub -perintah keduanya daftar, Stat, atas, catatan, atau laporan. Ini adalah sub -perintah yang paling sering digunakan; Lainnya terdaftar dalam dokumentasi (lihat bagian Ringkasan untuk tautan).

Ringkasan

Dalam panduan ini kami telah memperkenalkan Anda perf, Alat pemantauan dan analisis kinerja untuk Linux. Kami sangat mendorong Anda untuk menjadi terbiasa dengan dokumentasinya yang dipelihara dalam https: // perf.wiki.inti.org.

Jika Anda menemukan aplikasi yang mengonsumsi persentase sumber daya yang tinggi, Anda dapat mempertimbangkan untuk memodifikasi kode sumber, atau menggunakan alternatif lain.

Jika Anda memiliki pertanyaan tentang artikel ini atau saran yang harus ditingkatkan, kami semua adalah telinga. Jangan ragu untuk menghubungi kami menggunakan formulir komentar di bawah ini.

Menjadi Administrator Sistem Bersertifikat Linux