Perf- Għodda ta' Monitoraġġ u Analiżi tal-Prestazzjoni għal Linux


Meta nitkellmu dwar il-prestazzjoni fl-informatika, nirreferu għar-relazzjoni bejn ir-riżorsi tagħna u l-kompiti li jippermettulna nlestu f'perjodu ta 'żmien partikolari.

F'ġurnata ta' kompetizzjoni bla ħarxa bejn il-kumpaniji, huwa importanti li nitgħallmu kif nużaw dak li għandna bl-aħjar mod tal-kapaċità tiegħu. Il-ħela tar-riżorsi tal-ħardwer jew tas-software, jew in-nuqqas ta’ ħila li nkunu nafu kif nużawhom b’mod aktar effiċjenti, jispiċċa jkun telf li sempliċement ma nistgħux naffordjaw jekk irridu nkunu fil-quċċata tal-logħba tagħna.

Fl-istess ħin, irridu noqogħdu attenti li ma nieħdux ir-riżorsi tagħna sa limitu fejn l-użu sostnut iwassal għal ħsara irreparabbli.

F'dan l-artikolu ser nintroduċuk għal għodda ta 'analiżi tal-prestazzjoni relattivament ġdida u nipprovdu pariri li tista' tuża biex tissorvelja s-sistemi Linux tiegħek, inklużi l-ħardwer u l-applikazzjonijiet. Dan jgħinek tiżgura li joperaw sabiex tkun kapaċi tipproduċi r-riżultati mixtieqa mingħajr ma taħli r-riżorsi jew l-enerġija tiegħek stess.

L-introduzzjoni u l-installazzjoni ta 'Perf fil-Linux

Fost oħrajn, Linux jipprovdi għodda ta 'monitoraġġ u analiżi tal-prestazzjoni msejħa konvenjenti perf. Allura x'jiddistingwi perf minn għodod oħra magħrufa li diġà int familjari magħhom?

It-tweġiba hija li perf jipprovdi aċċess għall-Unità ta 'Monitoraġġ tal-Prestazzjoni fis-CPU, u għalhekk jippermettilna li nagħtu ħarsa mill-qrib lejn l-imġieba tal-hardware u l-avvenimenti assoċjati tiegħu.

Barra minn hekk, jista 'wkoll jimmonitorja l-avvenimenti tas-softwer, u joħloq rapporti mid-dejta li tinġabar.

Tista' tinstalla perf f'distribuzzjonijiet ibbażati fuq RPM bi:

# yum update && yum install perf     [CentOS / RHEL / Fedora]
# dnf update && dnf install perf     [Fedora 23+ releases]

F'Debian u d-derivattivi:

# sudo aptitude update && sudo aptitude install linux-tools-$(uname -r) linux-tools-generic

Jekk uname -r fil-kmand ta' hawn fuq jirritorna kordi żejda minbarra l-verżjoni attwali (3.2.0-23-ġeneriku fil-każ tiegħi), jista' jkun li jkollok ittajpja linux-tools-3.2.0-23 minflok. tal-użu tal-output ta 'uname.

Huwa wkoll importanti li wieħed jinnota li perf jagħti riżultati mhux kompluti meta jitmexxa fi mistieden fuq XEN) do.

Barra minn hekk, żomm f'moħħok li xi kmandi perf jistgħu jkunu ristretti għall-għeruq awtomatikament, li jistgħu jiġu diżattivati (sakemm is-sistema terġa 'tibda) billi tagħmel:

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

Jekk għandek bżonn tiddiżattiva l-mod paranojde b'mod permanenti, aġġorna l-issettjar li ġej fil-fajl /etc/sysctl.conf.

kernel.perf_event_paranoid = 0

Ladarba tkun installat il-perf, tista' tirreferi għall-paġna man tagħha għal lista ta' subkmandi disponibbli (tista' taħseb f'subkmandi bħala għażliet speċjali li jiftħu tieqa speċifika fis-sistema). Għal riżultati aħjar u aktar kompluti, uża perf jew bħala għerq jew permezz ta 'sudo.

lista perf (mingħajr għażliet) tirritorna t-tipi kollha ta 'avvenimenti simboliċi (lista twila). Jekk trid tara l-lista ta' avvenimenti disponibbli f'kategorija speċifika, uża l-lista tal-perf segwita mill-isem tal-kategorija ([hw|sw|cache|tracepoint|pmu|event_glob]), bħal:

Uri lista ta' avvenimenti definiti minn qabel tas-softwer fil-Linux:

# perf list sw 

perf stat imexxi kmand u jiġbor statistika tal-prestazzjoni tal-Linux waqt l-eżekuzzjoni ta 'tali kmand. X'jiġri fis-sistema tagħna meta nħaddmu dd?

# perf stat dd if=/dev/zero of=test.iso bs=10M count=1

L-istatistiċi murija hawn fuq jindikaw, fost affarijiet oħra:

  1. L-eżekuzzjoni tal-kmand dd ħadet 21.812281 millisekondi ta' CPU. Jekk naqsmu dan in-numru bil-valur tal-\ħin ta' sekondi li għadda hawn taħt (23.914596 millisekondi), dan jagħti 0.912 (CPU utilizzata).
  2. Filwaqt li l-kmand ġie esegwit, 15-il swiċċ tal-kuntest (magħrufa wkoll bħala swiċċijiet tal-proċess) jindikaw li s-CPUs inqalbu 15-il darba minn proċess (jew ħajt) għal ieħor.
  3. 2 migrazzjonijiet ta' CPU huwa r-riżultat mistenni meta f'CPU b'2-core l-ammont ta' xogħol jitqassam b'mod ugwali bejn in-numru ta' cores.
    Matul dak iż-żmien (21.812281 millisekondi), in-numru totali ta 'ċikli CPU li ġew ikkunsmati kien 62,025,623, li diviż b'0.021812281 sekondi jagħti 2.843 GHz.
  4. Jekk naqsmu n-numru ta' ċikli bl-għadd ta' struzzjonijiet totali nġibu 4.9 Ċikli għal kull Istruzzjoni, li jfisser li kull istruzzjoni ħadet kważi 5 ċikli CPU biex titlesta (bħala medja). Nistgħu nakkużaw dan (mill-inqas parzjalment) fuq in-numru ta 'fergħat u fergħat miss (ara hawn taħt), li jispiċċaw jaħlu jew jużaw ħażin iċ-ċikli tas-CPU.
  5. Hekk kif ġie esegwit il-kmand, iltaqgħu ma’ total ta’ 3,552,630 fergħa. Din hija r-rappreżentazzjoni fil-livell tas-CPU ta 'punti ta' deċiżjoni u loops fil-kodiċi. Aktar ma jkun hemm fergħat, inqas tkun il-prestazzjoni. Biex jikkumpensaw għal dan, is-CPUs moderni kollha jippruvaw ibassru l-fluss li se jieħu l-kodiċi. 51,348 fergħa miss jindikaw li l-karatteristika ta' tbassir kienet ħażina 1.45% tal-ħin.

L-istess prinċipju japplika għall-ġbir tal-istatistiċi (jew fi kliem ieħor, il-profiling) waqt li applikazzjoni tkun qed taħdem. Sempliċement tniedi l-applikazzjoni mixtieqa u wara perjodu raġonevoli ta 'żmien (li huwa f'idejk) agħlaqha, u perf se juri l-istatistiċi fl-iskrin. Billi tanalizza dawk l-istatistiċi tista 'tidentifika problemi potenzjali.

perf top huwa simili għall-kmand ta 'fuq, fis-sens li juri profil tas-sistema kważi f'ħin reali (magħruf ukoll bħala analiżi diretta).

Bl-għażla -a int se turi t-tipi kollha ta' avvenimenti magħrufa, filwaqt li l-għażla -e tippermettilek tagħżel kategorija speċifika ta' avveniment (kif ritornat mil-lista ta' perf) :

Se juri l-avveniment taċ-ċikli kollha.

perf top -a 

Se juri l-avvenimenti kollha relatati mal-cpu-clock.

perf top -e cpu-clock 

L-ewwel kolonna fl-output ta 'hawn fuq tirrappreżenta l-perċentwal ta' kampjuni meħuda mill-bidu tal-ġirja, miġbura skond il-funzjoni Simbolu u Oġġett Kondiviż. Aktar għażliet huma disponibbli fil-bniedem perf-top.

perf record imexxi kmand u jiffranka d-dejta statistika f'fajl imsejjaħ perf.data ġewwa d-direttorju tax-xogħol kurrenti. Hija taħdem b'mod simili għal perf stat.

Ittajpja perf record segwit minn kmand:

# perf record dd if=/dev/null of=test.iso bs=10M count=1

rapport tal-perf jifformattja d-dejta miġbura f'perf.data hawn fuq f'rapport tal-prestazzjoni:

# sudo perf report

Is-sottokmandi kollha ta’ hawn fuq għandhom paġna man iddedikata li tista’ tiġi invokata bħala:

# man perf-subcommand

fejn is-sottokmand huwa jew lista, stat, top, rekord, jew rapport. Dawn huma l-aktar subkmandi użati ta' spiss; oħrajn huma elenkati fid-dokumentazzjoni (irreferi għat-taqsima Sommarju għall-link).

Sommarju

F'din il-gwida introduċejna inti perf, għodda ta 'monitoraġġ u analiżi tal-prestazzjoni għal Linux. Inħeġġuk ħafna biex issir familjari mad-dokumentazzjoni tagħha li hija miżmuma fi https://perf.wiki.kernel.org.

Jekk issib applikazzjonijiet li qed jikkunsmaw persentaġġ għoli ta 'riżorsi, tista' tikkunsidra li timmodifika l-kodiċi tas-sors, jew tuża alternattivi oħra.

Jekk għandek mistoqsijiet dwar dan l-artikolu jew suġġerimenti biex ittejjeb, aħna lkoll widnejn. Ħossok liberu li tilħaqna billi tuża l-formola tal-kummenti hawn taħt.