GNU/Linux >> Belajar Linux >  >> Linux

Linux – Bagaimana Menganalisis Data Profil Dari `perf Record –a` (Koleksi seluruh sistem)?

Saya menggunakan perf dari linux-2.6.36-gentoo-r4. /proc/sys/kernel/perf_event_paranoid diatur ke 0, jadi seharusnya tidak ada masalah dari sana.

Karena aplikasi yang berjalan lama yang saya buat profil terkadang macet karena alasan yang tidak ditentukan (saya tidak dapat menemukan informasi tentang alasan berhenti bekerja), saya beralih ke pembuatan profil seluruh sistem dengan peristiwa perf.

Aplikasi yang dimaksud melakukan perhitungan numerik paralel, menggunakan MPI (Message Passing Interface) untuk komunikasi. Sebelum menjalankan aplikasi (dengan mpirun ) Saya telah mulai merekam data profil seluruh sistem di satu node yang dijalankan dengan:

$ perf record -o perf.all.cycles,graph.data -g -e cycles -a &

Setelah saya menyadari bahwa aplikasi macet, saya telah mematikan perf tugas.

Itu telah pergi

$ du -sh perf.all.cycles,graph.data 
14G     perf.all.cycles,graph.data

14GB datanya. Sayangnya perf report tidak mendukung -a beralih.

Bagaimana cara menganalisis data profil seluruh sistem dari perf alat ?

Cukup jalankan perf report tidak menghasilkan keluaran yang berguna:

$ perf report -i perf.all.cycles,graph.data
#
# (For a higher level overview, try: perf report --sort comm,dso)
#

Itu adalah keseluruhan output dari data profil 14GB…

Jawaban yang Diterima:

Jika Anda mendistribusikan komputasi dengan MPI, maka menggunakan alat MPI-aware akan memberi Anda hasil yang lebih masuk akal:dengan aplikasi terdistribusi, Anda mungkin memiliki masalah ketidakseimbangan beban, di mana satu proses MPI menganggur menunggu data datang dari proses lain . Jika Anda membuat profil persis seperti proses MPI, profil kinerja Anda akan salah.

Jadi, langkah pertama biasanya mencari tahu tentang komunikasi dan pola keseimbangan beban program Anda, dan mengidentifikasi input sampel yang memberi Anda beban kerja yang Anda inginkan (mis., CPU-intensif pada peringkat 0) Misalnya, mpiP adalah MPI alat profiling yang dapat menghasilkan laporan yang sangat lengkap tentang pola komunikasi, berapa lama waktu yang dibutuhkan setiap panggilan MPI, dll.

Kemudian Anda dapat menjalankan alat pembuatan profil kode pada satu atau lebih peringkat MPI yang dipilih. Bagaimanapun, menggunakan perf pada peringkat MPI tunggal sepertinya bukan ide yang baik karena pengukurannya juga akan berisi kinerja kode perpustakaan MPI, yang mungkin bukan yang Anda cari.


Linux
  1. Linux – Bagaimana Cara Menjalankan Bootloader Dari Linux?

  2. Bagaimana cara merekam audio dengan ffmpeg di linux?

  3. Bagaimana cara mendapatkan netmask dari bash?

  1. Cara Menggunakan journalctl untuk Menganalisis Log di Linux

  2. Cara Migrasi dari CentOS 8 ke Rocky Linux 8

  3. Bagaimana cara mendapatkan nama host dari IP (Linux)?

  1. Bagaimana mencegah dan memulihkan dari penghapusan file yang tidak disengaja di Linux

  2. Cara SSH di Linux dari Android

  3. Cara menghasilkan data netflow di linux