Perf- Alat Pemantauan dan Analisis Prestasi untuk Linux

Perf- Alat Pemantauan dan Analisis Prestasi untuk Linux

Apabila kita bercakap tentang prestasi dalam pengkomputeran, kita merujuk kepada hubungan antara sumber kita dan tugas -tugas yang membolehkan kita menyelesaikannya dalam tempoh masa tertentu.

Perf- Alat Pemantauan dan Analisis Prestasi untuk Linux

Dalam satu hari persaingan yang tidak menentu antara syarikat, adalah penting untuk kita belajar bagaimana menggunakan apa yang kita ada dengan kemampuannya yang terbaik. Pembaziran sumber perkakasan atau perisian, atau kekurangan keupayaan untuk mengetahui cara menggunakannya dengan lebih cekap, akhirnya menjadi kerugian yang kita tidak mampu jika kita mahu berada di bahagian atas permainan kita.

Pada masa yang sama, kita mesti berhati -hati untuk tidak mengambil sumber kita ke had di mana penggunaan yang berterusan akan menghasilkan kerosakan yang tidak boleh diperbaiki.

Dalam artikel ini kami akan memperkenalkan anda kepada alat analisis prestasi yang agak baru dan memberikan petua yang boleh anda gunakan untuk memantau sistem Linux anda, termasuk perkakasan dan aplikasi. Ini akan membantu anda memastikan bahawa mereka beroperasi supaya anda mampu menghasilkan hasil yang diinginkan tanpa membuang sumber atau tenaga anda sendiri.

Memperkenalkan dan memasang perf di linux

Antara lain, Linux menyediakan alat pemantauan dan analisis prestasi yang dipanggil dengan mudah Perf. Jadi apa yang membezakan Perf dari alat lain yang terkenal yang anda sudah biasa?

Jawapannya ialah Perf Menyediakan akses kepada unit pemantauan prestasi di CPU, dan dengan itu membolehkan kami melihat dengan jelas tingkah laku perkakasan dan peristiwa yang berkaitan.

Di samping itu, ia juga boleh memantau peristiwa perisian, dan membuat laporan daripada data yang dikumpulkan.

Anda boleh memasang Perf Dalam pengagihan berasaskan RPM dengan:

# yum kemas kini && yum pasang perf [Centos / RHEL / Fedora] # kemas kini dnf & dnf memasang perf [Fedora 23+ siaran] 

Dalam Debian dan derivatif:

# Sudo Aptitude Update & Sudo Aptitude Pasang Linux-Tools-$ (Uname -R) Linux-Tools-Generic 

Jika uname -r Dalam perintah di atas mengembalikan rentetan tambahan selain versi sebenar (3.2.0-23-generik dalam kes saya), anda mungkin perlu menaip Linux-Tools-3.2.0-23 bukannya menggunakan output uname.

Ia juga penting untuk diperhatikan bahawa Perf menghasilkan hasil yang tidak lengkap apabila dijalankan di dalam tetamu di atas Virtualbox atau VMware kerana mereka tidak membenarkan akses ke kaunter perkakasan sebagai teknologi virtualisasi lain (seperti KVM atau XEN) lakukan.

Di samping itu, perlu diingat bahawa beberapa Perf Perintah mungkin terhad kepada akar secara lalai, yang boleh dilumpuhkan (sehingga sistem reboot) dengan melakukan:

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

Sekiranya anda perlu melumpuhkan paranoid mod secara kekal, kemas kini tetapan berikut di /etc/sysctl.Conf fail.

kernel.perf_event_paranoid = 0 

Subcommands

Sebaik sahaja anda memasang Perf, Anda boleh merujuk kepada halaman lelaki untuk senarai sub -komando yang tersedia (anda boleh memikirkan subkomandal sebagai pilihan khas yang membuka tetingkap tertentu ke dalam sistem). Untuk hasil yang terbaik dan lebih lengkap, gunakan Perf sama ada sebagai akar atau melalui sudo.

Senarai Perf

Senarai Perf (tanpa pilihan) Mengembalikan semua jenis acara simbolik (senarai panjang). Sekiranya anda ingin melihat senarai acara yang terdapat dalam kategori tertentu, gunakan Perf Senarai diikuti dengan nama kategori ([HW | sw | cache | tracepoint | pmu | event_glob]), seperti:

Senarai paparan perisian peristiwa yang telah ditetapkan di Linux:

# Senarai Perf SW 
Senaraikan perisian peristiwa yang telah ditetapkan di Linux

Perf Stat

Perf STAT menjalankan arahan dan mengumpul statistik prestasi Linux semasa pelaksanaan arahan tersebut. Apa yang berlaku dalam sistem kita semasa kita menjalankan DD?

# perf stat dd jika =/dev/sifar = ujian.ISO BS = 10m kiraan = 1 
Mengumpul statistik prestasi arahan linux

Statistik yang ditunjukkan di atas menunjukkan, antara lain:

  1. Pelaksanaan DD Perintah mengambil 21.812281 Milisaat CPU. Jika kita membahagikan nombor ini dengan nilai "saat masa berlalu" di bawah (23.914596 milisaat), ia menghasilkan 0.912 (CPU digunakan).
  2. Semasa arahan itu dilaksanakan, 15 Switch konteks (juga dikenali sebagai suis proses) menunjukkan bahawa CPU telah dihidupkan 15 kali dari satu proses (atau benang) ke yang lain.
  3. 2 Migrasi CPU adalah hasil yang diharapkan apabila dalam CPU 2-teras beban kerja diedarkan secara merata antara bilangan teras.
    Pada masa itu (21.812281 milisaat), jumlah kitaran CPU yang dimakan adalah 62,025,623, yang dibahagikan oleh 0.021812281 saat memberi 2.843 GHz.
  4. Sekiranya kita membahagikan bilangan kitaran dengan jumlah arahan yang kita dapatkan 4.9 Kitaran setiap arahan, yang bermaksud setiap arahan mengambil hampir 5 kitaran CPU untuk disiapkan (secara purata). Kita boleh menyalahkan ini (sekurang-kurangnya sebahagiannya) pada bilangan cawangan dan cawangan-cabang (lihat di bawah), yang akhirnya membuang atau menyalahgunakan kitaran CPU.
  5. Oleh kerana arahan itu dilaksanakan, sejumlah 3,552,630 Cawangan ditemui. Ini adalah perwakilan peringkat CPU titik keputusan dan gelung dalam kod. Lebih banyak cawangan, semakin rendah prestasi. Untuk mengimbangi ini, semua CPU moden cuba meramalkan aliran kod yang akan diambil. 51,348 Malah cawangan menunjukkan ciri ramalan itu salah 1.45% masa.

Prinsip yang sama berlaku untuk mengumpulkan statistik (atau dengan kata lain, profil) semasa permohonan sedang berjalan. Cukup lancarkan permohonan yang dikehendaki dan selepas tempoh masa yang munasabah (yang terpulang kepada anda) tutupnya, dan Perf akan memaparkan statistik di skrin. Dengan menganalisis statistik tersebut, anda dapat mengenal pasti masalah yang berpotensi.

Perf bahagian atas

perf bahagian atas sama dengan arahan teratas, kerana ia memaparkan profil sistem hampir masa nyata (juga dikenali sebagai analisis langsung).

Dengan -a pilihan anda akan memaparkan semua jenis acara yang diketahui, sedangkan -e pilihan akan membolehkan anda memilih kategori acara tertentu (seperti yang dikembalikan Senarai Perf):

Akan memaparkan semua acara kitaran.

Perf Top -a 

Akan memaparkan semua acara berkaitan CPU-jam.

Perf Top -E CPU -Clock 
Analisis langsung prestasi Linux

Lajur pertama dalam output di atas mewakili peratusan sampel yang diambil sejak permulaan larian, dikumpulkan oleh simbol fungsi dan objek bersama. Lebih banyak pilihan boleh didapati di Man Perf-top.

Rekod Perf

Perf Rekod menjalankan arahan dan menyimpan data statistik ke dalam fail yang dinamakan Perf.data Di dalam direktori kerja semasa. Ia berjalan sama dengan Perf Stat.

Jenis Rekod Perf diikuti dengan arahan:

# perf rekod dd jika =/dev/null of = ujian.ISO BS = 10m kiraan = 1 
Rekod data statistik arahan

Laporan Perf

Laporan Perf Format data yang dikumpulkan dalam Perf.data di atas laporan prestasi:

# Sudo Perf Report 
Laporan Prestasi Perf Linux

Semua di atas Subcommands Mempunyai halaman lelaki yang berdedikasi yang boleh dipanggil sebagai:

# lelaki perf-subcommand 

di mana Subcommand sama ada senarai, stat, Atas, rekod, atau laporan. Ini adalah subcommands yang paling kerap digunakan; yang lain disenaraikan dalam dokumentasi (rujuk bahagian ringkasan untuk pautan).

Ringkasan

Dalam panduan ini kami telah memperkenalkan anda kepada Perf, alat pemantauan dan analisis prestasi untuk linux. Kami sangat menggalakkan anda untuk mengenali dokumentasinya yang dikekalkan dalam https: // perf.wiki.kernel.org.

Sekiranya anda mencari aplikasi yang memakan peratusan sumber yang tinggi, anda mungkin mempertimbangkan untuk mengubah suai kod sumber, atau menggunakan alternatif lain.

Sekiranya anda mempunyai soalan mengenai artikel atau cadangan ini untuk memperbaiki, kami semua telinga. Jangan ragu untuk menghubungi kami menggunakan borang komen di bawah.

Menjadi Pentadbir Sistem Bersertifikat Linux