Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Koleksi Ultra Komprehensif - Koleksi Ringkasan Alat Analisis Prestasi Linux

Koleksi Ultra Komprehensif - Koleksi Ringkasan Alat Analisis Prestasi Linux

Linux中文社区
Linux中文社区ke hadapan
2023-08-03 16:20:12955semak imbas

Oleh kerana minat terhadap sistem pengendalian Linux dan keinginan yang kuat untuk pengetahuan asas, saya menyusun artikel ini. Artikel ini juga boleh digunakan sebagai penunjuk untuk menguji pengetahuan asas Selain itu, artikel itu merangkumi semua aspek sistem. Tanpa pengetahuan sistem komputer yang lengkap, pengetahuan rangkaian dan pengetahuan sistem pengendalian, adalah mustahil untuk menguasai sepenuhnya alatan dalam dokumen Selain itu, analisis dan pengoptimuman prestasi sistem adalah siri jangka panjang.


Dokumen ini terutamanya adalah artikel komprehensif berdasarkan catatan blog arkitek prestasi kanan Netflix Brendan Gregg yang mengemas kini alat penalaan prestasi Linux dan mengumpul artikel yang berkaitan dengan pengoptimuman prestasi sistem Linux Digabungkan dengan catatan blog, prinsip dan alat ujian prestasi yang terlibat akan diterangkan.


Pengetahuan latar belakang: Mempunyai pengetahuan latar belakang ialah perkara yang anda perlu tahu semasa menganalisis masalah prestasi. Sebagai contoh, cache perkakasan contoh lain ialah kernel sistem pengendalian. Butiran tingkah laku aplikasi sering dikaitkan dengan perkara-perkara peringkat rendah ini boleh menjejaskan prestasi aplikasi dengan cara yang tidak dijangka Contohnya, sesetengah program tidak dapat menggunakan cache sepenuhnya, mengakibatkan kemerosotan prestasi. Sebagai contoh, terlalu banyak panggilan sistem dipanggil secara tidak perlu, menyebabkan penukaran kernel/pengguna yang kerap, dsb. Ini hanya untuk membuka jalan untuk kandungan susulan artikel ini. Masih banyak perkara tentang penalaan yang saya tidak tahu lebih daripada yang saya tahu.


【Alat Analisis Prestasi】

Pertama, mari lihat gambar:

Koleksi Ultra Komprehensif - Koleksi Ringkasan Alat Analisis Prestasi Linux

Gambar di atas adalah analisis prestasi yang dikongsikan oleh Brendan Gregg Semua alatan di sini boleh mendapatkan dokumen bantuan mereka melalui manusia


▲ vmstat - statistik memori maya

vmstat (VirtualMeomoryStatistics, statistik memori maya) ialah alat biasa untuk memantau memori dalam Linux. Ia boleh memantau memori maya, proses dan CPU. Pantau keadaan keseluruhan.


Penggunaan umum vmstat: masa selang vmstat bermaksud pensampelan sekali setiap selang saat, jumlah masa pensampelan jika diabaikan, data akan dikumpul sehingga pengguna menghentikannya secara manual.
Contoh mudah:

Koleksi Ultra Komprehensif - Koleksi Ringkasan Alat Analisis Prestasi Linux

Anda boleh menggunakan ctrl+c untuk menghentikan pengumpulan data vmstat.


Baris pertama menunjukkan purata sejak sistem dimulakan, baris kedua mula menunjukkan apa yang berlaku sekarang, baris berikut akan menunjukkan apa yang berlaku dalam setiap selang 5 saat, maksud setiap lajur adalah dalam pengepala, seperti berikut Paparan:

▪ Procs: lajur r menunjukkan berapa banyak proses sedang menunggu untuk cpu, dan lajur b menunjukkan berapa banyak proses sedang tidur tanpa gangguan (menunggu IO).

memori: Lajur swapd menunjukkan bilangan blok yang telah ditukar daripada cakera (pertukaran halaman), lajur yang selebihnya menunjukkan bilangan blok yang percuma (tidak digunakan) dan bilangan blok yang digunakan sebagai penimbal , dan jumlah yang digunakan sebagai cache sistem pengendalian.

swap: Menunjukkan aktiviti swap: berapa banyak blok sedang ditukar (dari cakera) dan ditukar keluar (ke cakera) sesaat.

io: Menunjukkan bilangan blok yang dibaca (bi) dan ditulis (bo) daripada peranti blok, biasanya mencerminkan cakera keras I/O.

▪ sistem: Memaparkan bilangan sampukan (dalam) dan suis konteks (cs) sesaat.

▪ cpu: Memaparkan peratusan semua masa CPU yang dibelanjakan untuk pelbagai operasi, termasuk melaksanakan kod pengguna (bukan kernel), melaksanakan kod sistem (kernel), melahu dan menunggu IO.

Simptom memori tidak mencukupi: memori bebas berkurangan dengan mendadak, penimbal dan cache kitar semula tidak membantu, penggunaan meluas partition swap (swpd), pertukaran halaman yang kerap (swap), peningkatan bilangan cakera baca dan tulis (io), dan kerosakan halaman (dalam ) meningkat, bilangan suis konteks (cs) meningkat, bilangan proses menunggu IO (b) meningkat, dan banyak masa CPU dihabiskan untuk menunggu IO (wa)


▲iostat - untuk melaporkan statistik unit pemprosesan pusat

iostat digunakan untuk melaporkan statistik unit pemprosesan pusat (CPU) dan statistik input/output untuk keseluruhan sistem, penyesuai, peranti tty, cakera dan CD-ROM , yang memaparkan maklumat penggunaan cpu yang sama seperti vmstat secara lalai, gunakan arahan berikut untuk memaparkan statistik peranti lanjutan:

Koleksi Ultra Komprehensif - Koleksi Ringkasan Alat Analisis Prestasi Linux

Baris pertama menunjukkan purata sejak sistem bermula, kemudian purata tambahan, Satu baris setiap peranti.

Tabiat singkatan penunjuk IO cakera Linux biasa: rq ialah permintaan, r dibaca, w ialah tulis, qu ialah baris gilir, sz ialah saiz, a ialah purata, tm ialah masa dan svc ialah perkhidmatan.

▪rrqm/s dan wrqm/s: Gabungan permintaan baca dan tulis sesaat, "bercantum" bermakna sistem pengendalian mengambil berbilang permintaan logik daripada baris gilir dan menggabungkannya menjadi satu permintaan ke cakera sebenar.

▪r/s dan w/s: Bilangan permintaan baca dan tulis yang dihantar ke peranti sesaat.

▪rsec/s dan wsec/s: Bilangan sektor dibaca dan ditulis sesaat.

▪avgrq –sz: Bilangan sektor yang diminta.

▪avgqu –sz: Bilangan permintaan menunggu dalam baris gilir peranti.

▪menunggu: Masa yang dihabiskan untuk setiap permintaan IO.

▪svctm: Masa permintaan (perkhidmatan) sebenar.

▪%util: Peratusan masa terdapat sekurang-kurangnya satu permintaan aktif.


▲dstat--alat pemantauan sistem

dstat menunjukkan penggunaan cpu, status cakera io, status penghantaran paket rangkaian dan status perubahan halaman input vmstat dan iostat lebih terperinci dan intuitif. Apabila menggunakannya, hanya masukkan arahan secara langsung, dan sudah tentu anda juga boleh menggunakan parameter tertentu.

adalah seperti berikut: dstat –cdlmnpsy

Koleksi Ultra Komprehensif - Koleksi Ringkasan Alat Analisis Prestasi Linux


▲iotop--proses LINUX alat pemantauan masa nyata

arahan Iiotop

yang berdedikasi gaya adalah serupa dengan arahan atas dan boleh dipaparkan Proses mana yang secara khusus menjana beban IO. Ia adalah alat teratas yang digunakan untuk memantau penggunaan I/O cakera Ia mempunyai UI yang serupa dengan bahagian atas, termasuk PID, pengguna, I/O, proses dan maklumat lain yang berkaitan.


boleh digunakan dalam cara yang tidak interaktif: selang iotop –bod, untuk melihat I/O setiap proses, anda boleh menggunakan pidstat, pidstat –d instat.


Cari akaun rasmi bahagian belakang komuniti Cina Linux dan balas "dapur peribadi" untuk mendapatkan pakej hadiah kejutan.


▲pidstat--Memantau sumber sistem

pidstat digunakan terutamanya untuk memantau penggunaan sumber sistem oleh semua atau proses tertentu, seperti CPU, memori, peranti IO, penukaran tugas, benang, dll. .

Penggunaan: selang pidstat –d; pidstat juga boleh digunakan untuk mengira maklumat penggunaan CPU: selang pidstat –u untuk mengira maklumat memori: Selang Pidstat –r. Kawasan ringkasan arahan atas memaparkan lima aspek maklumat prestasi sistem:

1. Muatan: masa, bilangan pengguna log masuk, purata beban sistem; , terbiar, Menunggu IO, gangguan, dsb.;

Kawasan tugas dipaparkan secara lalai: ID proses, pengguna berkesan, keutamaan proses, nilai NICE, memori maya, memori fizikal dan memori dikongsi yang digunakan oleh proses, status proses, penggunaan CPU, penggunaan memori, masa CPU terkumpul dan arahan proses maklumat talian.

htop

htop ialah pemapar proses interaktif dalam sistem Linux, aplikasi mod teks (dalam konsol atau terminal X), memerlukan ncurses.

Htop membolehkan pengguna beroperasi secara interaktif, menyokong tema warna, boleh menatal senarai proses secara mendatar atau menegak dan menyokong operasi tetikus.

Berbanding dengan atas, htop mempunyai kelebihan berikut:

▪ Anda boleh menatal senarai proses secara mendatar atau menegak untuk melihat semua proses dan baris arahan yang lengkap.

▪ Lebih pantas daripada teratas pada permulaan.

▪ Tidak perlu memasukkan ID proses apabila membunuh proses.

▪ htop menyokong operasi tetikus.


▲mpstat
mpstat ialah singkatan kepada Statistik Berbilangpemproses dan merupakan alat pemantauan sistem masa nyata. Ia melaporkan beberapa maklumat statistik tentang CPU, yang disimpan dalam fail /proc/stat. Dalam sistem berbilang CPU, ia bukan sahaja boleh melihat maklumat status purata semua CPU, tetapi juga melihat maklumat CPU tertentu. Penggunaan biasa: mpstat –P SEMUA masa selang.


netstat

Netstat digunakan untuk memaparkan data statistik yang berkaitan dengan protokol IP, TCP, UDP dan ICMP, dan biasanya digunakan untuk memeriksa sambungan rangkaian mesin. .

▲Penggunaan biasa:

netstat –npl boleh menyemak sama ada port yang anda ingin buka sudah terbuka.

netstat –rn Cetak maklumat jadual penghalaan.

netstat –in Menyediakan maklumat antara muka pada sistem, mencetak MTU setiap antara muka, bilangan paket input, ralat input, bilangan paket output, ralat output, konflik dan panjang baris gilir keluaran semasa.


ps--paparkan status proses semasa

ps mempunyai terlalu banyak parameter yang biasa digunakan #hsserver; ps – ef |grep #hundsun

▪ Kaedah untuk mematikan program tertentu: ps aux | grep –v grep |. proses zombi: ps –eal |. awk '{if ($2 == "Z"){print $4}}' |

Jejaki panggilan sistem dan isyarat yang diterima semasa pelaksanaan program untuk membantu menganalisis situasi tidak normal yang dihadapi semasa program atau pelaksanaan perintah.

Contoh: Untuk menyemak fail konfigurasi yang mysqld dimuatkan pada Linux, anda boleh menjalankan arahan berikut: strace –e stat64 mysqld –print –defaults > /dev/null


boleh mencetak berapa lama sistem telah berjalan secara keseluruhan dan purata beban sistem. Tiga nombor terakhir yang dikeluarkan oleh arahan masa aktif bermakna purata beban sistem dalam 1 minit, 5 minit dan 15 minit. masing-masing.


lsof

lsof (senarai fail terbuka) ialah alat yang menyenaraikan fail terbuka dalam sistem semasa. Anda boleh menggunakan alat lsof untuk melihat senarai ini untuk pengesanan sistem dan penyelesaian masalah Kegunaan biasa:

Lihat sistem fail menyekat lsof /boot

Semak proses nombor port yang diduduki lsof -i : 3306

Lihat fail mana yang dibuka oleh pengguna lsof –u nama pengguna

Lihat fail mana yang dibuka oleh proses lsof –p 4838

Lihat pautan rangkaian terbuka jauh lsof –i @192.168.34.128


perfperf ialah alat pengoptimuman prestasi sistem yang disertakan dengan kernel Linux. Kelebihannya terletak pada penyepaduan rapatnya dengan Linux Kernel Ia boleh menjadi yang pertama digunakan pada ciri baharu yang ditambahkan pada Kernel, yang boleh digunakan untuk melihat fungsi panas dan nisbah kehilangan tunai, dengan itu membantu pembangun mengoptimumkan prestasi program.


Prinsip asas alat penalaan prestasi seperti perf, Oprofile, dsb. adalah untuk mengambil sampel objek yang dipantau Kes yang paling mudah ialah membuat sampel berdasarkan gangguan tanda, iaitu, titik pensampelan dicetuskan dalam sampukan semak Klik di sini untuk menentukan konteks semasa program. Jika program menghabiskan 90% masanya dalam function foo(), maka 90% titik persampelan harus jatuh dalam konteks function foo(). Nasib adalah sukar difahami, tetapi saya fikir selagi kekerapan pensampelan cukup tinggi dan masa pensampelan cukup lama, inferens di atas akan lebih dipercayai. Oleh itu, dengan mencetuskan pensampelan dengan tandakan, kita boleh memahami bahagian mana program mengambil paling banyak masa dan memberi tumpuan kepada analisis.


Jika anda ingin mengetahui lebih lanjut tentang alat ini, anda boleh rujuk:

http://blog.csdn.net/trochiluses/article/details/10261339


Ringkasan: Menggabungkan arahan ujian prestasi yang biasa digunakan di atas dan menghubungi gambar rajah alat analisis prestasi pada permulaan artikel, anda pada mulanya boleh memahami aspek prestasi yang menggunakan alat (perintah) semasa proses analisis prestasi.


[Alat ujian prestasi yang biasa digunakan]

Saya mahir dan mahir dalam alatan arahan analisis prestasi di bahagian kedua, dan memperkenalkan beberapa alatan ujian prestasi Sebelum memperkenalkan, mari kita fahami secara ringkas alat ujian:


▪ perf_events: Alat diagnostik prestasi dikeluarkan dan diselenggara dengan kod kernel Linux, diselenggara dan dibangunkan oleh komuniti kernel. Perf boleh digunakan bukan sahaja untuk analisis statistik prestasi aplikasi, tetapi juga untuk statistik prestasi dan analisis kod kernel.

Lagi rujukan: http://blog.sina.com.cn/s/blog_98822316010122ex.html.


Alat eBPF: Alat penjejakan prestasi menggunakan bcc, peta eBPF boleh digunakan secara meluas dalam penalaan kernel menggunakan program eBPF tersuai, dan juga boleh membaca kod tak segerak peringkat pengguna. Yang penting data luaran ini boleh diuruskan dalam ruang pengguna. Badan data peta format k-v ini diuruskan dengan memanggil panggilan sistem bpf dalam ruang pengguna untuk membuat, menambah, memadam dan operasi lain. lagi: http://blog.csdn.net/ljy1988123/article/details/50444693.


perf-tools: Satu set alat analisis dan penalaan prestasi Linux berdasarkan perf_events (perf) dan ftrace. Perf-Tools mempunyai sedikit kebergantungan perpustakaan dan mudah digunakan. Menyokong versi kernel Linux 3.2 dan ke atas. lagi: https://github.com/brendangregg/perf-tools.


▪ bcc (BPF Compiler Collection): Alat analisis prestasi perf menggunakan eBPF. Kit alat untuk mencipta program pengesanan dan manipulasi kernel yang cekap, termasuk beberapa alat dan contoh yang berguna. Manfaatkan BPF Lanjutan (Penapis Paket Berkeley), secara rasmi dipanggil eBPF, ciri baharu yang pertama kali ditambahkan pada Linux 3.15. Pelbagai guna memerlukan Linux 4.1 atau lebih tinggi BCC.

Lagi rujukan: https://github.com/iovisor/bcc#tools.


ktap: Jenis alat penjejakan prestasi dinamik baharu untuk skrip Linux. Membenarkan pengguna menjejaki dinamik kernel Linux. ktap direka bentuk untuk saling beroperasi, membolehkan pengguna menala cerapan operasi, menyelesaikan masalah dan melanjutkan kernel dan aplikasi. Ia serupa dengan Linux dan Solaris DTrace SystemTap. Rujukan lanjut: https://github.com/ktap/ktap.


Flame Graphs: Ia adalah perisian grafik yang menggunakan perf, system tap, ktap visualization, membolehkan laluan kod yang paling kerap dikenal pasti dengan cepat dan tepat, anda boleh menggunakan github.com/brendangregg/ flamegraph Penjanaan prosedur kod sumber pembangunan.

Lagi rujukan: http://www.brendangregg.com/flamegraphs.html.

1. Alat pemerhatian Linux |

Koleksi Ultra Komprehensif - Koleksi Ringkasan Alat Analisis Prestasi Linux

▪ Alat Asas untuk belajar dahulu adalah seperti berikut:
uptime, top(htop), mpstat, isstat, vmstat, free, ping, nicstat, dstat.


▪ Perintah lanjutan adalah seperti berikut:
sar, netstat, pidstat, strace, tcpdump, blktrace, iotop, slabtop, sysctl, /proc.

Rujukan lanjut: http://www.open-open.com/lib/view/open1434589043973.html Untuk penggunaan arahan terperinci, sila rujuk man

alat penanda aras Linux Alat penilaian

Koleksi Ultra Komprehensif - Koleksi Ringkasan Alat Analisis Prestasi Linux

ialah alat penilaian prestasi Anda boleh menggunakan alat yang sepadan untuk ujian prestasi modul yang berbeza Jika anda ingin mengetahui lebih lanjut, anda boleh merujuk kepada dokumen yang dilampirkan di bawah.


3. Alat penalaan Linux | Alat penalaan prestasi Linux

Koleksi Ultra Komprehensif - Koleksi Ringkasan Alat Analisis Prestasi Linux
ialah alat penalaan prestasi yang kebanyakannya melakukan penalaan daripada lapisan kod sumber kernel Linux, jika anda ingin mengetahui lebih lanjut mengenainya boleh Rujuk dokumen yang dilampirkan di bawah.


4. Linux observability sar | Linux performance observation tool

Koleksi Ultra Komprehensif - Koleksi Ringkasan Alat Analisis Prestasi Linux

sar (System Activity Reporter system reporter) merupakan salah satu alat analisis prestasi sistem yang paling komprehensif pada LINUX, yang boleh digunakan dalam LINUX banyak aspek Laporkan aktiviti sistem, termasuk: membaca dan menulis fail, penggunaan panggilan sistem, cakera I/O, kecekapan CPU, penggunaan memori, aktiviti proses dan aktiviti berkaitan IPC.


sar biasa digunakan: sar [pilihan] [-A] [-o fail] t [n]
di mana:
t ialah bilangan selang pensampelan, n ialah bilangan pensampelan , Nilai lalai ialah 1;
-o fail bermaksud menyimpan keputusan arahan dalam format binari dalam fail, di mana fail ialah nama fail.
pilihan ialah pilihan baris arahan

Atas ialah kandungan terperinci Koleksi Ultra Komprehensif - Koleksi Ringkasan Alat Analisis Prestasi Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:Linux中文社区. Jika ada pelanggaran, sila hubungi admin@php.cn Padam