GNU/Linux >> Belajar Linux >  >> Linux

Linux perf:Cara Menggunakan Perintah dan Profiler

Pendahuluan

Alat perf Linux adalah utilitas baris perintah ringan untuk membuat profil dan memantau kinerja CPU pada sistem Linux. Meskipun alat ini sederhana, alat ini memberikan informasi mendalam yang membantu dalam menganalisis CPU.

Perintah tersebut berisi banyak sub-perintah untuk mengumpulkan, melacak, dan menganalisis data kejadian CPU.

Panduan ini menunjukkan alat kinerja melalui contoh.

Prasyarat

  • Akses ke terminal.
  • Akses ke root atau pengguna dengan hak istimewa sudo.
  • Editor teks, seperti nano atau Vi/Vim.

Cara Memasang perf

Program perf tidak terinstal di sistem Linux. Instalasi berbeda berdasarkan distribusi Linux:

  • Ubuntu/Debian
sudo apt install linux-tools-$(uname -r) linux-tools-generic
  • RHEL/CentOS
sudo yum install perf
  • Fedora
sudo dnf install perf

Verifikasi instalasi dengan:

perf --version

Output mencetak nomor versi, yang menunjukkan bahwa instalasi berhasil.

Izinkan Pengguna Biasa Menggunakan perf

perf perintah, secara default, membutuhkan sudo hak istimewa. Untuk mengizinkan pengguna biasa menggunakan perf , lakukan hal berikut:

1. Beralih ke pengguna root:

sudo su -

2. Masukkan perintah berikut:

echo 0 > /proc/sys/kernel/perf_event_paranoid

Perintah mengizinkan pengguna biasa untuk menggunakan utilitas perf di sesi saat ini.

3. Beralih kembali ke pengguna biasa dengan:

exit

Untuk mempertahankan perubahan, lakukan hal berikut:

1. Edit sysctl file konfigurasi:

sudo nano /etc/sysctl.conf

2. Tambahkan berikut ini ke file:

kernel.perf_event_paranoid = 0

3. Simpan perubahan dan keluar dari nano.

Sintaks Perintah Linux perf

perf sintaks perintahnya adalah:

perf <options> subcommand <options/arguments>

Alat perf bekerja seperti git. Ini bertindak sebagai antarmuka untuk berbagai sub-perintah dan aktivitas yang berbeda. Menjalankan perintah tanpa opsi atau argumen menunjukkan daftar subperintah yang tersedia.

Linux perf Subcommands

Di bawah ini adalah tabel yang menguraikan perf yang umum digunakan sub-perintah:

Subperintah Deskripsi
annotate Membaca perf.data dan menunjukkan kode beranotasi.
list Mencantumkan semua peristiwa terukur.
stat Mengumpulkan statistik kinerja.
record Merekam sampel ke dalam perf.data .
report Membaca perf.data dan menampilkan profil.
script Membaca perf.data dan menampilkan keluaran jejak.
top Alat pembuatan profil.

Sub-perintah memiliki opsi tambahan. Untuk menampilkan opsi untuk masing-masing subperintah, jalankan:

perf <subcommand> -h

Outputnya menampilkan jendela bantuan singkat untuk sub-perintah tertentu.

Contoh Perintah Linux perf

Untuk menguji perf perintah, kami menggunakan instance BMC kecil s0.d1 phoenixNAP yang menjalankan Ubuntu 18.04.

Catatan: Untuk kasus penggunaan lain dari instans BMC kecil, lihat beberapa panduan kami:

  • Menyiapkan Firewall pada Instans BMC s0.d1.small
  • Cara Menyiapkan Load Balancer di Server BMC s0.d1.small
  • Menyiapkan Lingkungan Sandbox pada Instans S.0 BMC

Saat membuat profil CPU dengan perf perintah, alur kerja tipikal adalah menggunakan:

1. perf list untuk menemukan acara.

2. perf stat untuk menghitung kejadian.

3. perf record untuk menulis acara ke file.

4. perf report untuk menelusuri file yang direkam.

5. perf script untuk membuang acara setelah diproses.

Outputnya berbeda berdasarkan sistem dan sumber daya yang tersedia secara lokal.

1. Cantumkan Acara yang Tersedia

Buat daftar semua peristiwa terukur menggunakan perf dengan list sub-perintah:

sudo perf list

Output mencantumkan semua acara yang didukung, apa pun jenisnya. Tanpa sudo , perintah menunjukkan daftar yang lebih pendek. Saat mereferensikan peristiwa di subperintah lain, gunakan -e tag diikuti dengan nama acara dari kolom pertama.

Tambahkan parameter filter setelah perintah untuk membatasi daftar menurut nama peristiwa (kolom pertama) atau jenis peristiwa (kolom kedua). Misalnya, hanya tampilkan peristiwa perangkat keras dengan:

sudo perf list hardware

Atau sebagai alternatif:

sudo perf list hw

Keluaran menunjukkan hasil yang difilter berdasarkan parameter atau parameter yang disediakan.

2. Lihat Profil Sistem Waktu Nyata CPU

Untuk melihat profil CPU secara real-time, gunakan top sub-perintah:

sudo perf top

Perintah menampilkan fungsi sampel secara real time, mirip dengan perintah teratas Linux. Output mencetak tiga kolom berikut secara berurutan dari kiri ke kanan:

1. Penggunaan CPU terkait dengan fungsi yang dinyatakan dalam persentase.

2. Library atau program yang menggunakan fungsi tersebut.

3. Nama simbol dan fungsi, di mana [k] adalah ruang kernel dan [.] adalah ruang pengguna.

Secara default, perf top memonitor semua CPU online. Opsi tambahan memungkinkan:

  • Memantau semua CPU (termasuk idle) (-a ).
  • Memantau CPU tertentu (-C ).
  • Mengontrol frekuensi pengambilan sampel (-F ).

Untuk menampilkan opsi tambahan selama mode penjelajahan, tekan h .

Untuk keluar dari profiler dan kembali ke terminal, tekan q .

3. Lihat Statistik Kinerja CPU dengan perf

Untuk menampilkan statistik kinerja CPU untuk semua aktivitas perangkat keras dan perangkat lunak seluruh CPU standar, jalankan:

sudo perf stat -a sleep 5

Outputnya menunjukkan laporan terperinci untuk seluruh sistem yang dikumpulkan selama lima detik. Tanpa sleep 5 , sistem mengukur hingga penghentian dengan CTRL +C .

4. Lihat Kinerja CPU untuk Perintah

Untuk memeriksa statistik kinerja CPU untuk perintah tertentu, jalankan:

sudo perf stat <command>

Misalnya, periksa ls perintah dengan:

sudo perf stat ls

Total waktu yang dibutuhkan suatu perintah ditampilkan sebagai waktu berlalu di akhir keluaran.

5. Lihat Kinerja CPU untuk Suatu Proses

Lampirkan statistik kinerja CPU ke proses tertentu yang sedang berjalan dengan menggunakan -p tag dan memberikan ID proses (PID):

sudo perf -p <PID> sleep 5

Keluaran mengumpulkan dan menampilkan statistik kinerja untuk proses yang diberikan.

6. Hitung Panggilan Sistem Peristiwa berdasarkan Jenis

Untuk menghitung panggilan sistem kernel Linux berdasarkan jenis, jalankan:

sudo perf stat -e 'syscalls:sys_enter_*' -a sleep 5

Setelah lima detik, output menampilkan semua panggilan di seluruh sistem dan hitungannya.

7. Rekam Siklus CPU

Siklus CPU adalah peristiwa perangkat keras. Untuk merekam siklus CPU, gunakan record subcommand dan berikan nama acara dengan -e tag:

sudo perf record -e cycles sleep 10

Rekaman menyimpan data ke dalam perf.data mengajukan. Output mencetak ukuran file dan berapa banyak sampel data yang dikandungnya.

8. Lihat Hasil Kinerja

Untuk melihat hasil kinerja dari perf.data file, jalankan:

sudo perf report

Perintah membantu membaca perf.data file, menampilkan semua peristiwa dan statistik yang dikumpulkan. Untuk keluar dari penampil, tekan CTRL +C .

9. Ubah Contoh Format Keluaran

Untuk melihat contoh keluaran dalam format keluaran standar, jalankan:

sudo perf report --stdio

Modifikasi tambahan termasuk menampilkan nomor sampel untuk setiap acara (-n ), dan menampilkan kolom tertentu (--sort <column name> ). Misalnya:

sudo perf report -n --sort comm,symbol --stdio

Output menambahkan kolom untuk nomor sampel dan informasi perintah dan simbol.

10. Tampilkan Keluaran Jejak

Gunakan script subperintah untuk membuat daftar semua acara dari perf.dat sebuah. Misalnya:

sudo perf script

Output mencetak perf.data rincian dalam urutan waktu. Gunakan script sub-perintah sebagai data pasca-pemrosesan.

11. Tampilkan Header Jejak

Untuk menampilkan semua acara dari perf.data dengan informasi header jejak tambahan, jalankan:

sudo perf script --header

Output menunjukkan informasi header file, seperti kapan pelacakan dimulai, berapa lama berlangsung, info CPU, dan perintah yang mengambil data. Daftar acara berada setelah informasi header.

12. Buang Data Mentah

Untuk membuang data mentah sebagai hex dari perf.data file, gunakan -D pilihan:

sudo perf script -D

Hasilnya adalah informasi jejak peristiwa mentah dalam format ASCII. Opsi ini berguna untuk debugging acara.

13. Anotasi Data

Untuk membubuhi keterangan data dan membongkar lebih lanjut, gunakan annotate sub-perintah:

sudo perf annotate --stdio -v

-v pilihan memberikan output rinci. Hasilnya menunjukkan kode sumber dan pembongkaran acara.

Kesimpulan

Setelah melalui contoh-contoh dalam panduan ini, Anda mengetahui dasar-dasar penggunaan Linux perf perintah dan beberapa sub-perintah utama. Gunakan perintah man untuk melihat dokumentasi lengkap alat analisis kinerja dan subperintah.


Linux
  1. Cara menggunakan perintah grep Linux

  2. Cara Menggunakan Perintah id di Linux

  3. Cara menggunakan perintah "layar" di Linux

  1. Cara menggunakan perintah history di Linux

  2. Cara Membuat Alias ​​​​dan Menggunakan Perintah Alias ​​​​di Linux

  3. Cara Menginstal dan Menggunakan Perintah Ping di Linux

  1. Cara Menggunakan Perintah sejarah Linux

  2. Cara Menggunakan Perintah Linux xargs

  3. Cara Menggunakan Perintah tee Linux