Perf- Kayan aikin Kula da Ayyuka don Linux


Lokacin da muke magana game da aiki a cikin kwamfuta, muna komawa ga dangantakar dake tsakanin albarkatunmu da ayyukan da suke ba mu damar kammalawa a cikin wani lokaci.

A cikin rana mai zafi tsakanin kamfanoni, yana da mahimmanci mu koyi yadda ake amfani da abin da muke da shi a mafi kyawun ƙarfinsa. Barnar kayan masarufi ko kayan masarufi, ko rashin iya sanin yadda ake amfani da su yadda ya kamata, ya ƙare ya zama asara da ba za mu iya ba idan muna so mu kasance a saman wasanmu.

Har ila yau, dole ne mu yi taka tsantsan don kada mu ɗauki albarkatunmu zuwa iyaka inda amfani mai dorewa zai haifar da lalacewa maras misaltuwa.

A cikin wannan labarin za mu gabatar muku da sabon kayan aikin bincike na aikin da samar da shawarwari waɗanda zaku iya amfani da su don saka idanu akan tsarin Linux ɗinku, gami da kayan aiki da aikace-aikace. Wannan zai taimaka maka don tabbatar da cewa sun yi aiki ta yadda za ka iya samar da sakamakon da ake so ba tare da ɓata albarkatu ko makamashinka ba.

Gabatarwa da shigar da Perf a cikin Linux

Daga cikin wasu, Linux yana ba da kayan aikin sa ido da kayan bincike da ake kira dacewa perf. Don haka menene ya bambanta perf da sauran sanannun kayan aikin da kuka riga kuka saba dasu?

Amsar ita ce cewa perf yana ba da damar yin amfani da sashin Kula da Ayyuka a cikin CPU, don haka yana ba mu damar duban halayen kayan masarufi da abubuwan da ke tattare da su.

Bugu da ƙari, yana iya sa ido kan abubuwan da suka faru na software, da ƙirƙirar rahotanni daga bayanan da aka tattara.

Kuna iya shigar da perf a cikin rabon tushen RPM tare da:

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

A cikin Debian da abubuwan da aka samo asali:

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

Idan uname -r a cikin umarnin da ke sama ya dawo da ƙarin kirtani ban da ainihin sigar (3.2.0-23-generic a cikin akwati na), ƙila ka rubuta linux-tools-3.2.0-23 maimakon. na amfani da fitarwa na uname.

Hakanan yana da mahimmanci a lura cewa perf yana haifar da sakamako mara cika lokacin da aka gudu a cikin baƙo a saman XEN) yi.

Bugu da ƙari, ku tuna cewa wasu umarnin perf na iya iyakancewa zuwa tushen ta tsohuwa, waɗanda za a iya kashe su (har sai an sake kunna tsarin) ta yin:

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

Idan kana buƙatar kashe yanayin paranoid na dindindin, sabunta saitin mai zuwa a cikin /etc/sysctl.conf fayil.

kernel.perf_event_paranoid = 0

Da zarar ka shigar da perf, za ka iya komawa zuwa shafin sa na mutum don jerin sunayen umarni na ƙasa (zaka iya tunanin ƙananan umarni a matsayin zaɓi na musamman waɗanda ke buɗe takamaiman taga a cikin tsarin). Don mafi kyawun sakamako mafi kyau, yi amfani da perf ko dai azaman tushen ko ta hanyar sudo.

lissafin perf (ba tare da zažužžukan ba) yana dawo da duk nau'ikan taron na alama (jeri mai tsawo). Idan kana son duba jerin abubuwan da ke akwai a cikin takamaiman nau'i, yi amfani da lissafin perf wanda sunan rukuni ya biyo baya ([hw|sw|cache|tracepoint|pmu|event_glob]), kamar:

Nuna jerin abubuwan da aka riga aka ayyana software a cikin Linux:

# perf list sw 

Perf stat yana gudanar da umarni kuma yana tattara kididdigar ayyukan Linux yayin aiwatar da wannan umarni. Me ke faruwa a tsarin mu lokacin da muke gudanar da dd?

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

Ƙididdiga da aka nuna a sama suna nuna, a tsakanin wasu abubuwa:

    Kisa na dd umurnin ya ɗauki 21.812281 millise seconds na CPU. Idan muka raba wannan lambar da ƙimar lokacin daƙiƙun da ya wuce a ƙasa (23.914596 milliseconds), yana haifar da 0.912 (an yi amfani da CPU).
  1. Yayin da aka aiwatar da umarnin, 15 mahallin-switch (wanda kuma aka sani da tsari switches) suna nuna cewa an canza CPUs sau 15 daga tsari ɗaya (ko zaren) zuwa wani.
  2. 2 CPU hijirar shine sakamakon da ake tsammani lokacin da a cikin CPU 2-core ana rarraba nauyin aiki daidai da adadin adadin.
    A lokacin (21.812281 millise seconds), jimillar zagayowar CPU da aka cinye shine 62,025,623, wanda aka raba da daƙiƙa 0.021812281 yana ba da 2.843 GHz.
  3. Idan muka raba adadin zagayowar da jimillar umarnin umarnin za mu sami 4.9 Cycles Per Instruction, wanda ke nufin kowane umarni ya ɗauki kusan zagayowar CPU 5 don kammalawa (a matsakaita). Za mu iya zargi wannan (aƙalla a wani ɓangare) akan yawan rassa da reshe-rasa (duba ƙasa), wanda ya ƙare har ya zama ɓata ko rashin amfani da hawan CPU. Kamar yadda aka aiwatar da umarnin, an ci karo da rassa guda 3,552,630. Wannan shine wakilcin matakin-CPU na maki yanke shawara da madaukai a cikin lambar. Ƙarin rassan, ƙananan aikin. Don rama wannan, duk CPUs na zamani yunƙurin hasashen yadda lambar za ta ɗauka. 51,348 da aka rasa reshe suna nuna fasalin hasashen ba daidai ba ne 1.45% na lokacin.

Ka'idar iri ɗaya ta shafi tattara ƙididdiga (ko a wasu kalmomi, bayanin martaba) yayin aikace-aikacen yana gudana. Kawai kaddamar da aikace-aikacen da ake so kuma bayan wani lokaci mai ma'ana (wanda ya rage na ku) rufe shi, kuma perf zai nuna ƙididdiga a allon. Ta hanyar nazarin waɗannan ƙididdiga za ku iya gano matsalolin da za ku iya fuskanta.

perf top yayi kama da babban umarni, domin yana nuna bayanan tsarin tsarin kusan ainihin lokaci (wanda kuma aka sani da bincike mai rai).

Tare da zaɓin -a za ku nuna duk sanannun nau'ikan taron, yayin da zaɓin -e zai ba ku damar zaɓar takamaiman nau'in taron (kamar yadda lissafin perf ya dawo) :

Zai nuna duk taron zagayowar.

perf top -a 

Zai nuna duk abubuwan da suka shafi agogon CPU.

perf top -e cpu-clock 

Rukunin farko a cikin abin da aka fitar a sama yana wakiltar adadin samfuran da aka ɗauka tun farkon gudu, an haɗa su ta hanyar Alamar aiki da Abun Raba. Akwai ƙarin zaɓuka a cikin man perf-top.

rikodin perf yana gudanar da umarni kuma yana adana bayanan ƙididdiga cikin fayil mai suna perf.data a cikin kundin adireshin aiki na yanzu. Yana gudana kamar haka zuwa lissafin perf.

Buga rikodin perf da umarni:

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

rahoton perf yana tsara bayanan da aka tattara a cikin perf.data sama zuwa rahoton aiki:

# sudo perf report

Duk waɗannan ƙananan umarni na sama suna da keɓaɓɓen shafi na mutum wanda za a iya kiransa kamar haka:

# man perf-subcommand

inda umarni na ƙasa ya kasance ko dai jeri, ƙididdiga, saman, rikodin, ko rahoto. Waɗannan su ne ƙananan umarnin da aka fi amfani da su; wasu an jera su a cikin takaddun (koma zuwa sashin Takaitawa don hanyar haɗin).

Takaitawa

A cikin wannan jagorar mun gabatar muku da perf, kayan aikin sa ido da bincike don Linux. Muna ƙarfafa ku sosai don ku saba da takaddun sa waɗanda ake kiyaye su a https://perf.wiki.kernel.org.

Idan ka sami aikace-aikacen da ke cin babban kaso na albarkatu, ƙila ka yi la'akari da canza lambar tushe, ko amfani da wasu hanyoyin.

Idan kuna da tambayoyi game da wannan labarin ko shawarwari don ingantawa, mu duka kunnuwa ne. Jin kyauta don isa gare mu ta amfani da fam ɗin sharhi da ke ƙasa.