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.