GoGPT Best VPN GoSearch

OnWorks favicon

trace-cmd-record - Online sa Cloud

Patakbuhin ang trace-cmd-record sa OnWorks na libreng hosting provider sa Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

Ito ang command trace-cmd-record na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

PROGRAMA:

NAME


trace-cmd-record - magtala ng bakas mula sa panloob na tracer ng Ftrace Linux

SINOPSIS


bakas-cmd talaan [Opsyon] [utos]

DESCRIPTION


Ang bakas-cmd(1) ang record command ay magse-set up ng Ftrace Linux kernel tracer para i-record ang
tinukoy na mga plugin o kaganapan na nangyayari habang ang utos nagpapatupad. Kung walang utos
ibinigay, pagkatapos ay ire-record ito hanggang sa pindutin ng user ang Ctrl-C.

Ang record command ng trace-cmd ay magse-set up sa Ftrace tracer upang simulan ang pagsubaybay sa iba't-ibang
mga kaganapan o plugin na ibinibigay sa command line. Ito ay lilikha ng isang bilang ng
mga proseso ng pagsubaybay (isa sa bawat CPU) na magsisimulang mag-record mula sa kernel ring buffer
diretso sa pansamantalang mga file. Kapag kumpleto na ang command (o pindutin ang Ctrl-C) lahat ng
pagsasama-samahin ang mga file sa isang trace.dat file na maaaring basahin sa ibang pagkakataon (tingnan
trace-cmd-ulat(1)).

Opsyon


-p isaksak
Tumukoy ng isang trace plugin. Ang mga plugin ay mga espesyal na Ftrace tracer na karaniwang gumagawa ng higit sa
bakas lang ang isang kaganapan. Ang mga karaniwang plugin ay tungkulin, function_graph, preemptirqsoff,
irqsoff, preemptoff, at gising na. Ang isang plugin ay dapat na suportado ng tumatakbong kernel. Upang
tingnan ang isang listahan ng mga magagamit na plugin, tingnan trace-cmd-listNa (1).

-e pangyayari
Tukuyin ang isang kaganapang sususubaybayan. Iba't ibang mga static na trace point ang naidagdag sa Linux
kernel. Ang mga ito ay pinagsama ayon sa subsystem kung saan maaari mong paganahin ang lahat ng mga kaganapan ng isang naibigay
subsystem o tukuyin ang mga partikular na kaganapan na paganahin. Ang pangyayari ay nasa format
"subsystem: pangalan-kaganapan". Maaari mo ring tukuyin ang subsystem nang wala ang
:pangalan ng pangyayari o ang pangalan ng kaganapan na walang "subsystem:". Gamit ang "-e sched_switch" will
paganahin ang "sched_switch" na kaganapan kung saan bilang, "-e sched" ay paganahin ang lahat ng mga kaganapan sa ilalim ng
"sched" na subsystem.

Ang 'kaganapan' ay maaari ding maglaman ng mga glob na expression. Ibig sabihin, gagawin ng "*stat*".
piliin ang lahat ng mga kaganapan (o mga subsystem) na mayroong mga character na "stat" sa kanilang mga
mga pangalan.

Maaaring gamitin ang keyword na 'lahat' upang paganahin ang lahat ng mga kaganapan.

-a
Ang bawat kaganapan na nire-record ay mayroong output format file na naka-save sa output file
upang maipakita ito sa ibang pagkakataon. Ngunit kung ang ibang mga kaganapan ay pinagana sa bakas nang wala
Ang kaalaman ng trace-cmd, ang mga format ng mga kaganapang iyon ay hindi ire-record at trace-cmd
hindi maipapakita ng ulat ang mga ito. Kung ito ang kaso, tukuyin ang -a
opsyon at ang format para sa lahat ng kaganapan sa system ay ise-save.

-T
Paganahin ang isang stacktrace sa bawat kaganapan. Halimbawa:

-0 [003] 58549.289091: sched_switch: kworker/0:1:0 [120] R ==> trace-cmd:2603 [120]
-0 [003] 58549.289092: kernel_stack:
=> iskedyul (ffffffff814b260e)
=> cpu_idle (ffffffff8100a38c)
=> start_secondary (ffffffff814ab828)

--func-stack
Paganahin ang stack trace sa lahat ng function. Tandaan na ito ay naaangkop lamang para sa "function"
plugin tracer, at magkakabisa lamang kung ang -l na opsyon ay ginamit at magtagumpay
nililimitahan ang mga function. Kung ang function tracer ay hindi na-filter, at ang stack trace ay
pinagana, maaari mong i-live lock ang makina.

-f filter
Tumukoy ng filter para sa nakaraang kaganapan. Dapat itong dumating pagkatapos ng a -e. Ito ay magsasala
anong mga kaganapan ang naitala batay sa nilalaman ng kaganapan. Ang pag-filter ay ipinapasa sa
kernel nang direkta kaya kung anong pag-filter ang pinapayagan ay maaaring depende sa kung anong bersyon ng kernel
meron ka. Karaniwan, hahayaan ka nitong gumamit ng C notation upang suriin kung dapat ang isang kaganapan
naproseso o hindi.

==, >=, <=, >, <, &, |, && at ||

Karaniwang ligtas na gamitin ang nasa itaas upang ihambing ang mga field.

-R trigger
Tumukoy ng trigger para sa nakaraang kaganapan. Dapat itong dumating pagkatapos ng a -e. Magdaragdag ito ng a
ibinigay na trigger sa ibinigay na kaganapan. Upang paganahin lamang ang trigger at hindi ang mismong kaganapan,
pagkatapos ay ilagay ang kaganapan pagkatapos ng -v pagpipilian.

Tingnan ang Documentation/trace/events.txt sa Linux kernel source para sa higit pa
impormasyon sa mga nag-trigger.

-v
Ito ay magiging sanhi ng lahat ng mga kaganapan na tinukoy pagkatapos nito sa command line upang hindi masubaybayan.
Ito ay kapaki-pakinabang para sa pagpili ng isang subsystem na susubaybayan ngunit upang iwanan ang iba't ibang mga kaganapan.
Para sa Halimbawa: "-e sched -v -e "*stat\*"" ay magbibigay-daan sa lahat ng kaganapan sa sched subsystem
maliban sa mga may "stat" sa kanilang mga pangalan.

Tandaan: ang *-v* na opsyon ay kinuha mula sa daan grep(1) binabaligtad ang sumusunod
tugma

-F
I-filter lang nito ang executable na ibinigay sa command line. Kung walang utos
ay ibinigay, pagkatapos ay i-filter nito ang sarili nito (medyo walang kabuluhan). Gamit -F hahayaan kang masubaybayan
mga pangyayari lamang na dulot ng ibinigay na utos.

-P pid
Kapareho ng -F ngunit hinahayaan kang tumukoy ng isang prosesong ID upang masubaybayan.

-c
Ginamit sa alinman -F upang masubaybayan din ang proseso ng mga bata.

-C orasan
Itakda ang trace clock sa "clock".

paggamit bakas-cmd(1) listahan -C upang makita kung anong mga orasan ang magagamit.

-o output-file
Bilang default, ang ulat ng trace-cmd ay lilikha ng isang bakas.dat file. Maaari kang tumukoy ng iba
file na susulatan gamit ang -o pagpipilian.

-l function-name
Nililimitahan nito ang tungkulin at function_graph mga tracer upang masubaybayan lamang ang ibinigay
pangalan ng function. Higit sa isa -l maaaring tukuyin sa command line upang masubaybayan ang higit pa
kaysa sa isang function. Pinapayagan din ang limitadong paggamit ng mga glob expression. Ang mga ito ay
tugma* sa mga function na i-filter lamang na nagsisimula sa tumugma. *tugma sa filter lang
mga function na nagtatapos sa tumugma. *tugma\* upang i-filter lamang ang mga function na naglalaman
tumugma.

-g function-name
Ang pagpipiliang ito ay para sa function_graph plugin. I-graph nito ang ibinigay na function. yun
ay, susubaybayan lamang nito ang function at lahat ng function na tinatawag nito. Maaari kang magkaroon ng higit pa
kaysa sa isa -g sa command line.

-n function-name
Ito ay may kabaligtaran na epekto ng -l. Ang function na ibinigay kasama ang -n hindi magiging option
natunton. Nangangailangan ito, iyon ay, kung isasama mo ang parehong function para sa pareho -n
at -l, hindi ito matunton.

-d
Pinapagana ng ilang tracer plugin ang function tracer bilang default. Tulad ng mga latency tracer.
Pinipigilan ng opsyong ito ang paggana ng function tracer sa pagsisimula.

-D
Ang pagpipilian -d ay susubukan na gamitin ang function-trace na opsyon upang i-disable ang function tracer
(kung magagamit), kung hindi, ito ay magiging default sa proc file:
/proc/sys/kernel/ftrace_enabled, ngunit hindi ito hawakan kung ang function-trace na opsyon ay
magagamit Ang -D hindi paganahin ng opsyon ang ftrace_enabled proc file pati na rin ang
function-trace na opsyon kung mayroon ito.

Tandaan, hindi paganahin ang pagsubaybay sa function na ito para sa lahat ng user, na kinabibilangan ng mga user
sa labas ng mga ftrace tracer (stack_tracer, perf, atbp).

-O opsyon
Ang Ftrace ay may iba't ibang mga opsyon na maaaring paganahin o hindi paganahin. Ito ay nagpapahintulot sa iyo na itakda
sila. Pagdugtong ng teksto hindi sa isang opsyon ay hindi pinapagana ito. Halimbawa: "-O nograph-time"
idi-disable ang opsyong "graph-time" na Ftrace.

-s agwat
Ang mga prosesong nalilikha ng trace-cmd para i-record mula sa ring buffer ay kailangang magising
gawin ang pagre-record. Pagtatakda ng agwat sa zero ay magiging sanhi ng paggising ng mga proseso
sa tuwing may nakasulat na bagong data sa buffer. Ngunit dahil ang Ftrace ay nagre-record ng kernel
aktibidad, ang pagkilos ng mga prosesong ito na bumalik sa pagtulog ay maaaring magdulot ng mga bagong kaganapan sa
ring buffer na magigising muli sa proseso. Ito ay hindi kailangang magdagdag ng karagdagang data
sa ring buffer.

Ang sukatan ng 'interval' ay microseconds. Ang default ay nakatakda sa 1000 (1 ms).
Ito ang oras na matutulog ang bawat proseso ng pagre-record bago magising
itala ang anumang bagong data na isinulat sa ring buffer.

-r karapatang mauna
Ang priyoridad na patakbuhin ang mga capture thread sa. Sa isang abalang sistema ang pag-capture ng bakas
maaaring ma-staved ang mga thread at maaaring mawala ang mga kaganapan. Pinapataas nito ang priyoridad ng mga iyon
priority ang mga thread sa real time (FIFO). Ngunit gamitin ang pagpipiliang ito nang may pag-iingat, maaari rin
baguhin ang pag-uugali ng system na sinusubaybayan.

-b laki
Itinatakda nito ang laki ng buffer ng singsing sa laki kilobytes. Dahil ang Ftrace ring buffer ay
bawat CPU, ang laki na ito ay ang laki ng bawat CPU ring buffer sa loob ng kernel. Gamit
Ang "-b 10000" sa isang makina na may 4 na CPU ay gagawing ang Ftrace ay may kabuuang laki ng buffer na 40
Sabi ni Megs.

-B buffer-pangalan
Kung sinusuportahan ng kernel ang maraming buffer, magdaragdag ito ng buffer na may ibinigay na pangalan.
Kung umiiral na ang pangalan ng buffer, ang buffer na iyon ay ire-reset lang at hindi tatanggalin
sa pagtatapos ng record execution. Kung ang buffer ay ginawa, ito ay aalisin sa
pagtatapos ng pagpapatupad (maliban kung ang -k ay nakatakda, o simula ginamit ang utos).

Pagkatapos maisaad ang pangalan ng buffer, ang lahat ng kaganapang idinagdag pagkatapos noon ay magiging
nauugnay sa buffer na iyon. Kung walang buffer na tinukoy, o isang kaganapan
ay tinukoy bago ang isang buffer name, ito ay iuugnay sa
pangunahing (toplevel) buffer.

trace-cmd record -e sched -B block -e block -B time -e timer sleep 1

Ang nasa itaas ay magbibigay-daan sa lahat ng sched na kaganapan sa pangunahing buffer. Ito ay
pagkatapos ay lumikha ng isang 'block' buffer instance at paganahin ang lahat ng block na kaganapan sa loob
na buffer. Isang 'oras' buffer instance ay ginawa at lahat ng timer kaganapan
ie-enable para sa kaganapang iyon.

-m laki
Ang max na laki sa kilobytes na dapat na isang buffer ng bawat cpu. Tandaan, dahil sa pag-round sa
laki ng pahina, maaaring hindi ganap na tama ang numero. Gayundin, ito ay isinasagawa sa pamamagitan ng paglipat
sa pagitan ng dalawang buffer na kalahati ng ibinigay na laki kaya ang output ay maaaring hindi sa
binigay na sukat kahit na marami pa ang naisulat.

Gamitin ito upang maiwasang maubusan ng diskspace para sa mahabang pagtakbo.

-M cpumask
Itakda ang cpumask para sa pagsubaybay. Naaapektuhan lang nito ang huling buffer instance na ibinigay. Kung
ibinibigay bago ang anumang buffer instance, pagkatapos ay makakaapekto ito sa pangunahing buffer. Ang halaga
ang ibinigay ay dapat na isang hex na numero.

trace-cmd record -p function -M c -B kaganapan13 -e lahat -M 5

Kung ang -M ay naiwan, ang maskara ay mananatiling pareho. Upang paganahin ang lahat
Mga CPU, pumasa sa isang halaga ng '-1'.

-k
Bilang default, kapag natapos na ang trace-cmd sa pagsubaybay, ire-reset nito ang mga buffer at idi-disable
lahat ng pagsubaybay na pinagana nito. Pinipigilan ng opsyong ito ang trace-cmd mula sa hindi pagpapagana ng tracer
at pag-reset ng buffer. Ang pagpipiliang ito ay kapaki-pakinabang para sa pag-debug ng trace-cmd.

Tandaan: karaniwang itatakda ng trace-cmd ang "tracing_on" na file pabalik sa kung ano ito
ay bago ito tinawag. Iiwan ng opsyong ito ang file na iyon na nakatakda sa zero.

-i
Bilang default, kung ang isang kaganapan ay nakalista na hindi mahanap ng trace-cmd, lalabas ito kasama ng isang
pagkakamali. Babalewalain lamang ng opsyong ito ang mga kaganapang nakalista sa command line ngunit ay
hindi nakita sa system.

-N host:port
Kung ang isa pang makina ay nagpapatakbo ng "trace-cmd listen", ang opsyong ito ay ginagamit upang magkaroon ng data
ipinadala sa makina na iyon na may mga UDP packet. Sa halip na sumulat sa isang output file, ang data
ay ipinadala sa isang malayong kahon. Ito ay mainam para sa mga naka-embed na makina na may maliit na imbakan,
o pagkakaroon ng isang makina na magpapanatili ng lahat ng data sa isang solong imbakan.

Tandaan: Hindi sinusuportahan ang opsyong ito sa mga plugin ng latency tracer:
wakeup, wakeup_rt, irqsoff, preemptoff at preemptirqsoff

-t
Ang pagpipiliang ito ay ginagamit sa -N, kapag may pangangailangang ipadala ang live na data gamit ang TCP
mga packet sa halip na UDP. Kahit na ang TCP ay hindi halos kasing bilis ng pagpapadala ng mga UDP packet,
ngunit maaaring kailanganin ito kung ang network ay hindi gaanong maaasahan, ang dami ng data ay hindi
masinsinang iyon, at kailangan ng garantiya na mailipat ang lahat ng sinusubaybayang impormasyon
matagumpay.

--date
Kasama ang --date opsyon, ang "trace-cmd" ay magsusulat ng mga timestamp sa trace buffer pagkatapos
tapos na itong magrecord. Pagkatapos ay imamapa nito ang timestamp sa gettimeofday na gagawin
payagan ang output ng wall time mula sa mga timestamp na binabasa ang ginawa bakas.dat file.

--profile
Kasama ang --profile opsyon, "trace-cmd" ay paganahin ang pagsubaybay na maaaring gamitin sa
trace-cmd-ulat(1) --profile na opsyon. Kung isang tracer -p ay hindi nakatakda, at function graph
depth ay sinusuportahan ng kernel, pagkatapos ay paganahin ang function_graph tracer
isang depth ng isa (ipakita lamang kung saan pumapasok ang userspace sa kernel). Paganahin din nito
iba't ibang mga tracepoint na may stack tracing upang maipakita ng ulat kung saan mayroon ang mga gawain
na-block sa pinakamatagal na panahon.

Tingnan trace-cmd-profile(1) para sa higit pang mga detalye at mga halimbawa.

-H mga kawit ng kaganapan
Magdagdag ng custom na pagtutugma ng kaganapan upang ikonekta ang anumang dalawang kaganapan nang magkasama. Kapag hindi ginamit sa
--profile, ise-save nito ang parameter at ito ay gagamitin ng trace-cmd na ulat
--profile din. Yan ay:

trace-cmd record -H hrtimer_expire_entry,hrtimer/hrtimer_expire_exit,hrtimer,sp
trace-cmd ulat --profile

Makakaapekto ba ang profile hrtimer_expire_entry at hrtimer_expire_ext beses.

Tingnan trace-cmd-profile(1) para sa format.

--stderr
Ipapunta ang output sa stderr sa halip na stdout, ngunit ang output ng command ay naisakatuparan
hindi mababago. Ito ay kapaki-pakinabang kung gusto mong subaybayan ang output ng command
na naisakatuparan, ngunit hindi nakikita ang output mula sa trace-cmd.

HALIMBAWA


Ang pangunahing paraan upang masubaybayan ang lahat ng mga kaganapan:

# trace-cmd record -e lahat ng ls > /dev/null
# trace-cmd na ulat
trace-cmd-13541 [003] 106260.693809: filemap_fault: address=0x128122 offset=0xce
trace-cmd-13543 [001] 106260.693809: kmalloc: call_site=81128dd4 ptr=0xffff88003dd83800 bytes_req=768 bytes_alloc=1024 gfp_flags=GFP_KERNZERO
ls-13545 [002] 106260.693809: kfree: call_site=810a7abb ptr=0x0
ls-13545 [002] 106260.693818: sys_exit_write: 0x1

Para gamitin ang function tracer na may sched switch tracing:

# trace-cmd record -p function -e sched_switch ls > /dev/null
# trace-cmd na ulat
ls-13587 [002] 106467.860310: function: hrtick_start_fair <-- pick_next_task_fair
ls-13587 [002] 106467.860313: sched_switch: prev_comm=trace-cmd prev_pid=13587 prev_prio=120 prev_state=R ==> next_comm=trace-cmd next_pid=13583 next_prio=120 next_prio=XNUMX
trace-cmd-13585 [001] 106467.860314: function: native_set_pte_at <-- __do_fault
trace-cmd-13586 [003] 106467.860314: function: up_read <-- do_page_fault
ls-13587 [002] 106467.860317: function: __phys_addr <-- iskedyul
trace-cmd-13585 [001] 106467.860318: function: _raw_spin_unlock <-- __do_fault
ls-13587 [002] 106467.860320: function: native_load_sp0 <-- __switch_to
trace-cmd-13586 [003] 106467.860322: function: down_read_trylock <-- do_page_fault

Narito ang isang magandang paraan upang mahanap kung anong mga interrupt ang may pinakamataas na latency:

# trace-cmd record -p function_graph -e irq_handler_entry -l do_IRQ sleep 10
# trace-cmd na ulat
-0 [000] 157412.933969: funcgraph_entry: | do_IRQ() {
-0 [000] 157412.933974: irq_handler_entry: irq=48 name=eth0
-0 [000] 157412.934004: funcgraph_exit: + 36.358 sa amin | }
-0 [000] 157413.895004: funcgraph_entry: | do_IRQ() {
-0 [000] 157413.895011: irq_handler_entry: irq=48 name=eth0
-0 [000] 157413.895026: funcgraph_exit: + 24.014 sa amin | }
-0 [000] 157415.891762: funcgraph_entry: | do_IRQ() {
-0 [000] 157415.891769: irq_handler_entry: irq=48 name=eth0
-0 [000] 157415.891784: funcgraph_exit: + 22.928 sa amin | }
-0 [000] 157415.934869: funcgraph_entry: | do_IRQ() {
-0 [000] 157415.934874: irq_handler_entry: irq=48 name=eth0
-0 [000] 157415.934906: funcgraph_exit: + 37.512 sa amin | }
-0 [000] 157417.888373: funcgraph_entry: | do_IRQ() {
-0 [000] 157417.888381: irq_handler_entry: irq=48 name=eth0
-0 [000] 157417.888398: funcgraph_exit: + 25.943 sa amin | }

Isang halimbawa ng profile:

# trace-cmd record --profile sleep 1
# trace-cmd report --profile --comm sleep
gawain: tulog-21611
Event: sched_switch:R (1) Kabuuan: 99442 Avg: 99442 Max: 99442 Min:99442
1 kabuuan:99442 min:99442 max:99442 avg=99442
=> ftrace_raw_event_sched_switch (0xffffffff8105f812)
=> __iskedyul (0xffffffff8150810a)
=> preempt_schedule (0xffffffff8150842e)
=> ___preempt_schedule (0xffffffff81273354)
=> cpu_stop_queue_work (0xffffffff810b03c5)
=> stop_one_cpu (0xffffffff810b063b)
=> sched_exec (0xffffffff8106136d)
=> do_execve_common.isra.27 (0xffffffff81148c89)
=> do_execve (0xffffffff811490b0)
=> SyS_execve (0xffffffff811492c4)
=> return_to_handler (0xffffffff8150e3c8)
=> stub_execve (0xffffffff8150c699)
Event: sched_switch:S (1) Kabuuan: 1000506680 Avg: 1000506680 Max: 1000506680 Min:1000506680
1 kabuuan:1000506680 min:1000506680 max:1000506680 avg=1000506680
=> ftrace_raw_event_sched_switch (0xffffffff8105f812)
=> __iskedyul (0xffffffff8150810a)
=> iskedyul (0xffffffff815084b8)
=> do_nanosleep (0xffffffff8150b22c)
=> hrtimer_nanosleep (0xffffffff8108d647)
=> SyS_nanosleep (0xffffffff8108d72c)
=> return_to_handler (0xffffffff8150e3c8)
=> tracesys_phase2 (0xffffffff8150c304)
Event: sched_wakeup:21611 (1) Kabuuan: 30326 Avg: 30326 Max: 30326 Min:30326
1 kabuuan:30326 min:30326 max:30326 avg=30326
=> ftrace_raw_event_sched_wakeup_template (0xffffffff8105f653)
=> ttwu_do_wakeup (0xffffffff810606eb)
=> ttwu_do_activate.constprop.124 (0xffffffff810607c8)
=> try_to_wake_up (0xffffffff8106340a)

Gumamit ng trace-cmd-record online gamit ang mga serbisyo ng onworks.net


Mga Libreng Server at Workstation

Mag-download ng Windows at Linux apps

Linux command

Ad




×
anunsyo
❤️Mamili, mag-book, o bumili dito — walang gastos, tumutulong na panatilihing libre ang mga serbisyo.